谁在消耗我们的开发时间?
- 修改一点代码要重启项目,每次都要浪费很多时间
- 进行方法调试时,要么需要Http请求,要么写个单元测试,非常烦
思考:有没有可能实现热部署+随意测试任何一个方法?
热部署
IDEA 插件 JRebel能解决该问题,该插件可以做到绝大部分的新增/修改代码热部署
安装
直接idea插件仓库安装
激活
步骤1:生成一个GUID,
- Generate GUIDs online
步骤2: 根据反向代理服务器地址拼接激活地址
- 服务器地址: Welcome to JetBrains License Server!:){GUID}
步骤3:完成激活
随心所欲测试
核心思想就是利用Spring上下文获取对应的bean,直接调用其中的方法
准备
- 安装
IDEA Arthas
插件:IDEA Plugin | arthas - 项目中增加依赖
Arthas Spring Boot Starter
:Arthas Spring Boot Starter | arthas ,担心安全问题的话可以只在本地开启,其他环境配置spring.arthas.enabled = false
- 代码中提供获取
Spring ApplicationContext
的变量的方法,参考官方文档:arthas-plugin-demo/ApplicationContextProvider.java at master · WangJi92/arthas-plugin-demo · GitHub 并配置好插件获取 Spring Context 的路径:
起飞
使用 JRebel 的方式启动项目,启动后浏览器打开 Arthas 控制台 http://localhost:8563 ,在要调用的法上选择复制Static Spring Context Invoke Method Field
随后到 Arthas 控制台粘贴即可
修改代码继续测试
可以下载一个Idea内置浏览器的插件Embedded web browser
参考:GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas