arthas 深入使用技巧
介绍arthas使用的一些技巧
arthas有一下几个默认对象: 1
2
3
4params 参数
target 当前对象
returnObj 返回值
throwExp 异常
调用具体时间 1
-b(调用前)、 -e(异常时)、-s(返回后)、-f(结束后)
通用参数 1
2
3-n 限制打印的条数,如程序执行中,可能有些方法会疯狂打印。
-i 设置打印间隔时间,单位毫秒
-x 属性遍历深度,默认为1。
1、tt 命令详细使用
1 | 过滤制定参数 |
2、获取系统bean
2.1
通过spring mvc 获取bean 1
2
3tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandlerMethod
# 之后通过如下命令来获取具具体bean
tt -i 1000 -w 'target.getApplicationContext().getBean("YourBeanName").fun()'
2.2
自定义类获取Spring ApplicationContent 想办法拿到项目中 ApplicationContext 对象。ognl只获取静态属性,所以我们一般需要查找项目中是否存在静态的ApplicationContext对象。
这里面我就自己创建了一个类来提供静态的ApplicationContext。
1 | public class BeanFactory implements ApplicationContextAware, DisposableBean { |
然后通过如下的命令获取任务想要的bean,simpleMockContainer为你想要获取的bean名称
1 | ognl '@com.xxx.admin.utils.BeanFactory@ctx.getBean("simpleMockContainer")' -x 2 |