gpt4 book ai didi

spring - 使用两个端口配置 Spring Boot

转载 作者:IT老高 更新时间:2023-10-28 13:48:11 27 4
gpt4 key购买 nike

我正在尝试在 Spring Boot 中使用两个不同的端口配置一个应用程序,但我还没有完成。我的第一个近似值是使用两个 Controller ,并且我在两个 Controller 中定义了一个 @Bean 与 container.setPort(8080);我的第二个近似是添加执行器依赖项并更改管理端口,但我的应用程序没有运行。 "地址已被使用:绑定(bind)",如何配置具有两个端口的应用程序?我想要一个端口用于管理员,另一个端口用于咨询我的 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 上发布了有关此主题的博客。

关于spring - 使用两个端口配置 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36357135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com