猿问

如何使用 spring boot 在 jetty 嵌入式服务器中以编程方式启用和公开

我正在使用一些 REST 控制器开发 Spring Boot 应用程序。我想添加 JMX 支持并公开一些 Jetty 的 mbean。

尝试连接 jconsole 但失败了,所以我猜 JMX 在这种情况下默认是禁用的。

问题是:如何在 Spring Boot 应用程序(使用 Jetty 作为嵌入式服务器)中启用 Jetty 的 JMX bean。


慕后森
浏览 85回答 1
1回答

德玛西亚99

我想到了。在 Spring Boot 中,可以通过添加自定义服务器定制器来向 Jetty 添加 JMX 支持。您需要做的就是添加这样的 bean:@Beanpublic 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;}
随时随地看视频慕课网APP

相关分类

Java
我要回答