arthas
热更新
反编译
$ jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
修改文件
$ vim /tmp/UserController.java
查找加载的 ClassLoader
$ $ sc -d *UserController | grep classLoaderHash classLoaderHash 6bc28484
编译
$ mc -c 6bc28484 /tmp/UserController.java -d /tmp
热更新
$ redefine /tmp/com/example/demo/arthas/user/UserController.class
实战
查看方法入参和返回值
watch 包 方法 '{params,returnObj}' -x 3
springboot web项目-查看请求头
watch -x 4 -n 1 org.springframework.web.servlet.DispatcherServlet doDispatch '@org.springframework.web.context.request.RequestContextHolder@currentRequestAttributes().getRequest().getHeaderNames()'