姐姐平时都用这么多的 Arthas 命令么

280 阅读1分钟

前言

妹妹: 姐姐平时都用这么多了命令么, 妹妹我平时啥也不会用

姐姐: 妹妹自称平时啥也不会用, OGNL 用的这么熟, 增删改查样样都不落

OGNL 命令学习

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

getBean 的代码实现:

在这里插入图片描述

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

在这里插入图片描述

  1. 调用构造函数

在这里插入图片描述

  1. 还可以表达式先后赋值

在这里插入图片描述

  1. 可以使用 this 代表当前对象

在这里插入图片描述

参考

commons.apache.org/proper/comm…

jueee.github.io/2020/08/202…

github.com/alibaba/art…

blog.csdn.net/u010634066/…