当前位置:网站首页>How to use Arthas to view class variable values
How to use Arthas to view class variable values
2022-07-07 09:00:00 【bboyzqh】
Use arthas The core idea of viewing class variable values is : By implementing ApplicationContextAware Interface definition ApplicationUtil class , This class can get ApplicationContext All of Bean example , And then through arthas Of ognl View the property value in the class instance .
Easy to build Spring Boot engineering
1. pom rely on
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zqh.test</groupId>
<artifactId>SpringBootTest</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.19.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. Spring Boot Start class
package com.zqh.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author fangchen
* @date 2022-01-08 14:33
*/
@SpringBootApplication(scanBasePackages = {"com.zqh.bean"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3. Realization ApplicationContextAware Interface tool class
package com.zqh.bean;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @author fangchen
* @date 2022-01-08 14:49
*/
@Component
public class ApplicationUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext args) throws BeansException {
applicationContext = args;
}
public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
}
4. View target class
package com.zqh.bean;
import org.springframework.stereotype.Component;
/**
* @author fangchen
* @date 2022-01-08 14:35
*/
@Component("testBean")
public class TestBean {
private int a = 9;
private String str = "this is bboy zqh!";
}
Use Arthas View class variable values
1. start-up Spring Boot Medium main Method
function Application class , Start success log :
2. Download and launch arthas
# download arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
# start-up arthas, And find the corresponding process , choice , Here is the first
java -jar arthas-boot.jar
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 71175 com.zqh.main.Application
[2]: 70851 /Users/zhuqiuhui/.flow/resources/player.jar
[3]: 70850 /Users/zhuqiuhui/.flow/resources/kafka.jar
[4]: 70852 /Users/zhuqiuhui/.flow/resources/webapp.jar
[5]: 71174 org.jetbrains.jps.cmdline.Launcher
[6]: 36375
[7]: 68267 /Users/zhuqiuhui/.flow/resources/kafka.jar
[8]: 70861 org.jetbrains.idea.maven.server.RemoteMavenServer
[9]: 70732
3. Use arthas View class variable values
[[email protected]]$ ognl '@[email protected]("testBean").a'
@Integer[9]
[[email protected]]$ ognl '@[email protected]("testBean").str'
@String[this is bboy zqh!]
Welcome to WeChat official account. : Fang Chen's blog
边栏推荐
- Personal deduction topic classification record
- selenium自动化集成,八年测试经验软测工程师,一篇文章带你学懂
- Introduction to data fragmentation
- Frequently Asked Coding Problems
- 个人力扣题目分类记录
- Opencv converts 16 bit image data to 8 bits and 8 to 16
- Pointer advanced, string function
- Goldbach conjecture C language
- Simulation volume leetcode [general] 1557 The minimum number of points that can reach all points
- OpenGL帧缓冲
猜你喜欢
数据在内存中的存储
阿里p8推荐,测试覆盖率工具—Jacoco,实用性极佳
Platformization, a fulcrum of strong chain complementing chain
Calf problem
[Nanjing University] - [software analysis] course learning notes (I) -introduction
Expérience de port série - simple réception et réception de données
Led analog and digital dimming
Greenplum 6.x common statements
Image segmentation in opencv
面板显示技术:LCD与OLED
随机推荐
Greenplum 6.x build_ install
Newly found yii2 excel processing plug-in
Expérience de port série - simple réception et réception de données
串口實驗——簡單數據收發
数据在内存中的存储
【ChaosBlade:节点 CPU 负载、节点网络延迟、节点网络丢包、节点域名访问异常】
为不同类型设备构建应用的三大更新 | 2022 I/O 重点回顾
Output a spiral matrix C language
【ChaosBlade:根据标签删除POD、Pod 域名访问异常场景、Pod 文件系统 I/O 故障场景】
Led analog and digital dimming
ncs成都新電面試經驗
Calf problem
Three updates to build applications for different types of devices | 2022 i/o key review
Calculation s=1+12+123+1234+12345 C language
Introduction to data fragmentation
Find the original code, inverse code and complement of signed numbers [C language]
MySQL master-slave delay solution
模拟卷Leetcode【普通】1706. 球会落何处
硬核分享:硬件工程师常用工具包
H3C VXLAN配置