为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2023-05-24 14:41:37
我正在使用一些 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;

}


查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信