如何让Javamelody使用不同的端口(Spring Boot+暴露的两个HTTP端口)

Bar*_*cki 5 java spring-mvc servlet-filters java-melody spring-boot

我有 Spring Boot Web 应用程序。它在端口 8080 上公开 REST API。它还通过 Spring Boot 管理端点公开管理端口 8081 ( http://docs.spring.io/spring-boot/docs/current/reference/html/product-ready-monitoring.html ) 。我没有任何自定义 Tomcat 配置来实现这一点。management.port=8081我的档案里只有财产application.properties

我按照https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app中的描述配置了 JavaMelody (我有我的自定义JavaMelodyConfiguration类,带有org.springframework.boot.web.servlet.FilterRegistrationBean寄存器net.bull.javamelody.MonitoringFilter)。

@Bean
    public FilterRegistrationBean javaMelody() {
        final FilterRegistrationBean javaMelody = new FilterRegistrationBean();
        javaMelody.setFilter(new MonitoringFilter());
        javaMelody.setAsyncSupported(true);
        javaMelody.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ASYNC);
        javaMelody.addUrlPatterns("/*");
        return javaMelody;
    }
Run Code Online (Sandbox Code Playgroud)

通过此配置,Javamelody 暴露在端口 8080(业务端口)上。我想将其移至8081(管理端口)。如何改变这一点?

我使用 Spring Boot 1.4.2.RELEASE,javamelody 1.62.0

Mic*_*ski 4

如果目标是公开对管理端口的监控,从 java melody 版本 1.76 开始现在要简单得多。

您需要 Spring Boot 2.x、执行器以及 yml 或属性文件:

  • management.server.port: {您的自定义端口}
  • management.endpoints.web.exposure.include:{你通常想要的},监控
  • javamelody.management-endpoint-monitoring-enabled:true

此处查看更多详细信息: https://github.com/javamelody/javamelody/wiki/SpringBootStarter#configuration-in-case-of-management-port