Arthas OGNL 举例

前言
妹妹: 姐姐平时都用这么多的命令么, 妹妹我平时啥也不会用
姐姐: 妹妹自称平时啥也不会用, OGNL 用的这么熟, 增删改查样样都不落
OGNL 命令学习
Arthas OGNL 举例

OGNL 这个表达式可以获取相关的值, 方便排查问题

OGNL 一般需要指定类加载器, 可以先使用 SC 命令查询相关类加载器的 hash 如下:
Arthas OGNL 举例

比如常见的使用 OGNL 通过调用静态方法获取 Spring 所加载的 bean 类:

ognl -c classLoaderHash -x 返回值的遍历的属性的层次 ‘OGNL表达式’

Arthas OGNL 举例

getBean 的代码实现:
Arthas OGNL 举例

获取 bean 之后就可以调用非静态的方法

Arthas OGNL 举例

调用构造函数

Arthas OGNL 举例

还可以表达式先后赋值

Arthas OGNL 举例

可以使用 this 代表当前对象

Arthas OGNL 举例

参考
https://commons.apache.org/proper/commons-ognl/language-guide.html
https://jueee.github.io/2020/08/2020-08-15-Ognl%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/
https://github.com/alibaba/arthas/issues/71
https://blog.csdn.net/u010634066/article/details/101013479

往期推荐
提高系统稳定性-幂等性-1
SpringBatch - Validate, 竟然敢摸清华女学生
BAT 的程序员用了这些 IDEA 插件, 志玲姐姐天天鼓励, 工作效率提高 320%
codog 代码狗:
Arthas OGNL 举例

上一篇:曝光一个网站,我周末就耗在上面了。


下一篇:java面试机试题,透彻分析源码