arthas官网:https://arthas.aliyun.com/doc/ 可以查看一些命令的基础用法,用户案例里有很多优秀的实践
idea插件:arthas idea 本地使用idea生成arthas命令,arthas命令不熟悉也能很好使用
修改static类static属性
ognl -x 3 ‘#f=@[package].[class]@class.getDeclaredField(“[field]”),#f.setAccessible(true),#f.set(null,“value”)’
修改bean的属性
spring中bean都是有很多代理的,先查出class的所有bean(包含代理bean)
vmtool --action getInstances --className [package].[class] --express ‘instances’
查出来数组列表,如果不确定某个属性实际生效的是哪个bean,那就所有bean都改
vmtool --action getInstances --className [package].[class] --express ‘#f=instances[0].getClass.getDeclaredField(“[field]”),#f.setAccessible(true),#f.set(instances[0],“value”)’
调整数组下标修改对应bean的属性值
后台执行并保存执行结果
有时候需要多个命令一起跑,这时候就需要让命令在后台执行,并记录结果
以trace为例
trace [package].[class] [method] >> [filename] &
&表示后台执行 >>[filename]表示将结果写到文件
当使用完后,需要手动停止下后台任务
jobs查看所有任务
kill jobid 停止对应任务