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

标签 java spring-mvc spring-boot servlet-filters java-melody

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

我已按照中所述配置了 JavaMelody https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app (我有我的自定义 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;
    }

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

我使用Spring Boot 1.4.2.RELEASE,javamelody 1.62.0

最佳答案

如果目标是公开对管理端口的监控,从 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

关于java - 如何让Javamelody使用不同的端口(Spring Boot+暴露的两个HTTP端口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41145640/

相关文章:

java - 根据用户角色和权限显示不同的网页和元素

java - Spring Boot应用程序错误页面

java - SecurityConfig 2 不同角色的成功 url

spring-boot - Jooq Java API,在选择查询中将日期时间转换为时区

java - Springboot 托管 GraphQL Server 不接受内容类型为 "application/json; charset=UTF-8"的查询

java - Spring bean 范围为 "one object per test method"

java - 将字符串转换为 ParseObject

java - 如何将 RestTemplate 与不同的 ResponseEntities 一起使用?

java - 有没有一种简单的方法来测试某些东西是否为空,如果不是,则用它做一些事情?

java - 自定义表模型不起作用