配置两个端口的Spring Boot

我试着用两个不同的端口在Spring Boot中配置一个应用程序,但是我还没有完成。 我的第一个aproximation已与两个控制器,我已经定义了一个@Bean在两个控制器与container.setPort(8080); 而我的第二个aproximation已添加执行器依赖项,并更改管理端口,但我的应用程序不运行。 “地址已在使用:绑定”,我如何配置两个端口的应用程序? 我想为管理员提供一个端口,另一个端口用于我的api的咨询。


如前所述, server.portmanagement.port以及management.context-path属性可以设置为使嵌入容器在不同端口(与管理相关的属性访问Actuator端点)上侦听。

要监听server.portmanagement.port以外的端口:

@Configuration
public class EmbeddedTomcatConfiguration {

    @Value("${server.additionalPorts}")
    private String additionalPorts;

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        Connector[] additionalConnectors = this.additionalConnector();
        if (additionalConnectors != null && additionalConnectors.length > 0) {
            tomcat.addAdditionalTomcatConnectors(additionalConnectors);
        }
        return tomcat;
    }

    private Connector[] additionalConnector() {
        if (StringUtils.isBlank(this.additionalPorts)) {
            return null;
        }
        String[] ports = this.additionalPorts.split(",");
        List<Connector> result = new ArrayList<>();
        for (String port : ports) {
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setScheme("http");
            connector.setPort(Integer.valueOf(port));
            result.add(connector);
        }
        return result.toArray(new Connector[] {});
    }
}

application.yml

server:
  port: ${appPort:8800}
  additionalPorts: 8881,8882

Application.java

@SpringBootApplication
@ComponentScan(...)
@Import(EmbeddedTomcatConfiguration.class)
public Application {

    public static void main(String[] args) {
        SpringApplication.run(Application .class, args);
    }
}

我最近在http://tech.asimio.net/2016/12/15/Configuring-Tomcat-to-Listen-on-Multiple-ports-using-Spring-Boot.html上发表了关于此主题的博客


要更改执行机构管理端口,您可以使用属性

management.port=8081

在这里查看属性的完整列表

更新:在这种情况下,执行器再创建一个嵌入式Tomcat(servlet容器)实例。 看到这里和这里

链接地址: http://www.djcxy.com/p/48697.html

上一篇: Configure Spring Boot with two ports

下一篇: How to get JSON from webpage into Python script