通过Java Config更改Springboot Actuator服务管理端口

时间:2016-11-28 05:48:52

标签: java spring spring-boot

如下所示我可以更改服务器端口,有没有办法为执行器管理服务端口做同样的事情。

我知道更改为via系统参数的类似方法,将management.port = XXX添加到application.properties中。

@EnableScheduling
@Configuration
@EnableAspectJAutoProxy
@Profile("dev")
public class AppConfig {

   Logger logger = LoggerFactory.getLogger(AppConfig.class);

   @Autowired
   DBPropertyBean dbPropertyBean;

   private @Value("${webserver.port}")
   int serverPort;


   @Bean
   public EmbeddedServletContainerFactory servletContainer() {
      TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
      factory.setPort(serverPort);
      return factory;
   }

1 个答案:

答案 0 :(得分:2)

是的,如果您深入了解源代码,因为management.port=XXX只是自动配置ManagementServerProperties bean,所以使用JavaConfig,只需注入ManagementServerProperties并配置端口即可。 (作为演示,我对所有端口进行了硬编码。)

@Configuration
class AppConfig {
    private int serverPort = 8081;

    @Autowired
    private ManagementServerProperties managementServerProperties;

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.setPort(serverPort);

        if (managementServerProperties != null)
            managementServerProperties.setPort(8089);

        return factory;
    }
}