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 个独立的控制器。
我已经通过为 tomcat 实现 EmbeddedServletContainerCustomizer 取得了部分成功,但如果可能的话,如果能够在控制器内实现这一点那就太好了。
是否可以?
您尝试执行的操作意味着应用程序正在侦听多个端口。这反过来意味着您启动多个 tomcat,因为 spring-boot 打包了在单个端口上启动的一个容器。
你可以做什么
您可以使用不同的弹簧配置文件启动同一应用程序两次。每个配置文件将配置不同的端口。
2个属性:
应用程序一.属性:server.port=8080
应用程序二.属性:server.port=8081
2个控制器
@Profile("one")
public class Controller1 {
@RequestMapping(value="/path1") public...
}
@Profile("two")
public class Controller2 {
@RequestMapping(value="/path2") public...
}
当提供指定的弹簧轮廓时,每个控制器都会被激活。
启动两次
$ java -jar -Dspring.profiles.active=one YourApp.jar
$ java -jar -Dspring.profiles.active=two YourApp.jar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)