在Spring Boot 2.7中,可以使用Java Flight Recorder(JFR)来获取堆栈信息。以下是一个简单的示例:
1. 添加依赖
在pom.xml文件中添加以下依赖:
```
org.springframework.boot
spring-boot-starter
2.7.0
com.oracle.jdk
jfr
8.0.292
```
2. 编写代码
创建一个RestController类,提供一个API接口用于触发JFR事件:
```
@RestController
public class JfrController {
@GetMapping("/jfr")
public String jfr() {
// 触发JFR事件
FlightRecorder.getFlightRecorder().recordExecution();
return "JFR event recorded";
}
}
```
3. 配置JFR
在application.properties文件中添加以下配置:
```
# 开启JFR
spring.jmx.enabled=true
spring.jmx.default-domain=jfr
management.endpoints.jmx.exposure.include=*
management.jmx.enabled=true
management.jmx.domain=jfr
management.jmx.unique-names=false
```
4. 运行应用程序
运行应用程序,并访问http://localhost:8080/jfr接口,即可触发JFR事件并收集堆栈信息。
5. 查看结果
可以使用JMC(Java Mission Control)或其他JFR分析工具来查看收集到的数据。在JMC中,选择File -> Open File,选择JFR文件并打开,即可查看堆栈信息等详细数据。