当前位置:网站首页>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
边栏推荐
- LeetCode 736. Lisp 语法解析
- Markdown编辑器Editor.md插件的使用
- Reflections on the way of enterprise IT architecture transformation (Alibaba's China Taiwan strategic thought and architecture practice)
- Platformization, a fulcrum of strong chain complementing chain
- QT charts use (rewrite qchartview to realize some custom functions)
- 数字三角形模型 AcWing 1027. 方格取数
- Find the original code, inverse code and complement of signed numbers [C language]
- Port occupation troubleshooting
- Opencv converts 16 bit image data to 8 bits and 8 to 16
- OpenGL帧缓冲
猜你喜欢
Lenovo hybrid cloud Lenovo xcloud: 4 major product lines +it service portal
Synchronized underlying principle, volatile keyword analysis
PPT模板、素材下载网站(纯干货,建议收藏)
C语言指针(中篇)
Output a spiral matrix C language
Markdown editor Use of MD plug-in
H3C vxlan configuration
外部中断实现按键实验
Troublesome problem of image resizing when using typora to edit markdown to upload CSDN
Three updates to build applications for different types of devices | 2022 i/o key review
随机推荐
Simple use of Xray
寄存器地址名映射
Greenplum 6.x reinitialization
面试题:高速PCB一般布局、布线原则
个人力扣题目分类记录
[Nanjing University] - [software analysis] course learning notes (I) -introduction
2022-07-06 unity core 9 - 3D animation
串口實驗——簡單數據收發
JS operation
Reading notes of pyramid principle
Original collection of hardware bear (updated on June 2022)
[wechat applet: cache operation]
Greenplum 6.x common statements
Simulation volume leetcode [general] 1609 Parity tree
实现自定义内存分配器
串口实验——简单数据收发
Implement custom memory allocator
模拟卷Leetcode【普通】1609. 奇偶树
ncs成都新電面試經驗
LeetCode 715. Range 模块