gpt4 book ai didi

java - Spring Boot sperate @Configurations 用于多个应用程序上下文

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:02 25 4
gpt4 key购买 nike

我想运行一个 spring boot 应用程序,但让它监听多个端口。

目的是能够让 Apache 将多个(子)域转发到不同端口上的 spring boot 应用程序(Tomcat)。示例:

         example.com/** -> PORT 8080
client.example.com/** -> PORT 8090
employee.example.com/** -> PORT 8100

据我从 SO 上的几个线程了解到,我最好从一个主类启动多个 @SpringBootApplication 注释类,对吧? ( https://stackoverflow.com/a/25870132/1510659 )

我还没有掌握的是如何分别配置这些应用程序中的每一个。

假设我已经启动了这三个应用程序,如上面的链接帖子所示:

MainExampleApplication
ClientExampleApplication
EmployeeExampleApplication

现在,例如,我想为每个应用程序以及可能具有相同值的 @RequestMappings 拥有单独的 Spring Security @Configuration 类(例如“/”)。

如何告诉 @Configuration@Controller 类它们分配给了哪个应用程序?

或者是否有属性可以在启动时传递给应用程序以指定哪些资源负责上下文?

我希望我没有走完全错误的方向。我确实有使用 Spring MVC 的经验,并且配置了一些相当简单的 Spring 应用程序——但没有使用多个上下文。如果有人能引导我朝着正确的方向前进,我会很高兴。提前谢谢你。

更新

正如 iamiddy 的回答和 xeon 的评论中提到的,我为此使用了 Spring Profiles。我在启动时为 SpringApplicationBuilder 提供了我的每个应用程序上下文的配置文件,并在 @Components 上使用了 @Profile("some_profile"),它应该只对某些人可用的上下文。

最佳答案

使用 Profiles 这是一个很棒的 spring 特性,只加载与配置文件关联的 bean。完成后,使用不同的 portprofile 参数启动您的应用程序 N

例如:这是您开始第一个的方式,其余的都这样做到您的 N

java -jar -Dspring.profiles.active=production1 -Dserver.port=9000 app.jar

关于java - Spring Boot sperate @Configurations 用于多个应用程序上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088147/

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