当前位置:网站首页>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【普通】1705. 吃苹果的最大数目
- 2022-07-06 Unity核心9——3D动画
- Panel display technology: LCD and OLED
- Screen automatically generates database documents
- 【Istio Network CRD VirtualService、Envoyfilter】
- Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
- Interpretation of MySQL optimization principle
- 串口实验——简单数据收发
- Simulation volume leetcode [general] 1609 Parity tree
- H3C vxlan configuration
猜你喜欢
Reading notes of pyramid principle
Greenplum 6.x common statements
C语言指针(下篇)
External interrupt to realize key experiment
数据在内存中的存储
2022-07-06 unity core 9 - 3D animation
NCS Chengdu Xindian interview experience
Mountaineering team (DFS)
Esp32-ulp coprocessor low power mode RTC GPIO interrupt wake up
Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
随机推荐
Simulation volume leetcode [general] 1705 The maximum number of apples to eat
The essence of high availability
Speaking of a software entrepreneurship project, is there anyone willing to invest?
C语言指针(下篇)
NVIC中断优先级管理
Routing information protocol rip
Simulation volume leetcode [general] 1557 The minimum number of points that can reach all points
Greenplum 6.x version change record common manual
Unity shader beginner's Essentials (I) -- basic lighting notes
ChaosBlade:混沌工程简介(一)
阿里p8手把手教你,自动化测试应该如何实现多线程?赶紧码住
Synchronized underlying principle, volatile keyword analysis
Count the number of words in the string c language
Goldbach conjecture C language
H3C VXLAN配置
串口實驗——簡單數據收發
端口复用和重映像
面板显示技术:LCD与OLED
Frequently Asked Coding Problems
Led analog and digital dimming