我想运行一个弹簧启动应用程序,但让它在多个端口上侦听.
目的是让Apache能够将多个(子)域转发到不同端口上的spring boot应用程序(Tomcat).例:
example.com/** -> PORT 8080
client.example.com/** -> PORT 8090
employee.example.com/** -> PORT 8100
Run Code Online (Sandbox Code Playgroud)
据我从SO上的几个线程理解,我最好@SpringBootApplication从一个主类中启动多个Annotated类,对吧?(/sf/answers/1810909271/)
我还没有掌握的是如何分别配置这些应用程序中的每一个.
假设我已经启动了这三个应用程序,如上面的链接帖子所示:
MainExampleApplication
ClientExampleApplication
EmployeeExampleApplication
Run Code Online (Sandbox Code Playgroud)
现在,例如,我希望为@Configuration这些应用程序中的每一个提供单独的Spring Security 类,以及@RequestMappings可能具有相同值的(例如"/").
如何告诉@Configuration或@Controller分类他们被分配到哪个应用程序?
或者是否有可以在启动时传递给应用程序的属性以指定哪些资源负责上下文?
我希望我不会在这里走错路.我确实有使用Spring MVC的经验,并且已经配置了一些相当简单的Spring应用程序 - 但是没有多个上下文.如果有人能带领我朝着正确的方向前进,我会感到非常高兴.先感谢您.
UPDATE
正如iamiddy的回答和xeon的评论中提到的那样,我使用了Spring Profiles.我提供一个轮廓SpringApplicationBuilder我的每个应用程序上下文的启动和使用@Profile("some_profile")上@Components应该只提供给一些上下文.