View on GitHub

wbrepl-spring-boot-starter

远程调试springboot-web应用

wbrepl-spring-boot-starter

远程调试springboot-web应用

该项目将nrepl服务内置到你的springboot工程中,然后你可通过连接nrepl服务来调试你的springboot工程,试想生产环境出现了问题,你想调试生产环境正在运行中的代码,用这个就太方便啦

使用该工具调试程序需要你具备一点 clojure 语言能力

如何使用

添加依赖

配置文件

打开你的工程配置文件application.yml或者application.properties(懂得自然懂)

提示:配置文件端口不要冲突,wbrepl.enabled一定要设置为true,设置为false时nrepl服务不会启动

启动你的springboot工程

如果你前面的步骤没有出错,在你启动你的springboot工程的同时也会启动一个nrepl服务,后续通过连接这个repl服务就可以调用你springbot工程中所有bean的方法

安装客户端并连接接nrepl服务

连接成功后会如下图

img.png

调用一个bean的方法试试

img_1.png

可以看到已经返回阿giao的名字 “giao”,userServiceImpl是我的springboot工程中的bean,你可以替换为你自己工程中的bean名称

测试中使用的bean如下图

img_2.png

开始调试

(list-beans) 获取spring容器中所有的bean

(bean "userServiceImpl") 获取名称为userServiceimpl的bean

(.getName (bean "userServiceImpl)) 调用userServiceimpl的getName方法

(.getMsg (bean "userServiceImpl) "tom" "男") 调用userServiceimpl的getMsg方法

(find-bean "user") 查找名字含有user的bean

(members (bean "userServiceImpl")) 查看userServiceImpl这个bean的所有公共成员和方法

你可能会问:就这么几个方法吗? 我要给一个bean的方法传java实体类参数怎么做?我要获取ApplicationContext怎么做?我想new一个java实例怎么做呢?

请先参考:java和clojure交操作 获取一点灵感

结束

本工程实现参考文章:

https://engineering.telia.no/blog/java-troubleshooting-on-steroids-with-clojure-repl

更漂亮的连接工具请参考:

clojure学习相关地址: