我正在使用一些 REST 控制器开发 Spring Boot 应用程序。我想添加 JMX 支持并公开一些 Jetty 的 mbean。尝试连接 jconsole 但失败了,所以我猜 JMX 在这种情况下默认是禁用的。问题是:如何在 Spring Boot 应用程序(使用 Jetty 作为嵌入式服务器)中启用 Jetty 的 JMX bean。
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
我想到了。在 Spring Boot 中,可以通过添加自定义服务器定制器来向 Jetty 添加 JMX 支持。您需要做的就是添加这样的 bean:
@Bean
public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(@Value("${server.port:8080}") final String port) {
JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory(Integer.valueOf(port));
factory.addServerCustomizers(server -> {
// Setup JMX
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
server.addEventListener(mbContainer);
server.addBean(mbContainer);
server.addBean(Log.getLog());
});
return factory;
}
添加回答
举报
0/150
提交
取消