gpt4 book ai didi

Spring Boot : specify port at the mapping level

转载 作者:行者123 更新时间:2023-12-04 18:03:08 24 4
gpt4 key购买 nike

Spring Boot:我想实现以下目标:一些 URL 路径映射到一个端口,一些映射到另一个。

换句话说,我想要类似的东西:

public class Controller1 {
@RequestMapping(value="/path1", port="8080") public...
@RequestMapping(value="/path2", port="8081") public...
}

以便我的应用程序同时响应 localhost:8080/path1 和 localhost:8081/path2

在应用程序中有 2 个独立的 Controller 是可以接受的。

我已经通过为 tomcat 实现 EmbeddedServletContainerCustomizer 取得了部分成功,但如果可能的话,能够在 Controller 内部实现这一点会很好。

是否可以?

最佳答案

您尝试执行的操作意味着该应用程序正在监听多个端口。这反过来意味着您启动多个 tomcat,因为 spring-boot 将一个容器打包在单个端口上。
你可以做什么
您可以使用不同的 Spring 配置文件两次启动同一个应用程序。每个配置文件将配置不同的端口。
2 属性:
application-one.properties:server.port=8080application-two.properties: server.port=80812个 Controller

@Profile("one")
public class Controller1 {
@RequestMapping(value="/path1") public...
}

@Profile("two")
public class Controller2 {
@RequestMapping(value="/path2") public...
}
当提供指定的 Spring 轮廓时,每个 Controller 都会被激活。
发射两次
$ java -jar -Dspring.profiles.active=one YourApp.jar
$ java -jar -Dspring.profiles.active=two YourApp.jar

关于 Spring Boot : specify port at the mapping level,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494633/

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