Java Spring引导单个应用程序,在两个不同的主机上有两个控制器
我有:Java Spring引导单个应用程序,在两个不同的主机上有两个控制器,java,spring-boot,Java,Spring Boot,我有: 我想启动不同主机上的每个控制器。只有一个应用程序可以通过Spring引导来处理它吗?每个主机使用Spring配置文件。然后使用env变量作为要加载的配置属性的输入。看 例如app1有一个指定host1 应用程序加载application-host1.properties(或等效) app2具有指定host2的env var,以便您可以将其替换为application.properties的properties变量 在本地运行时,您可以指定主机ID,然后加载要测试的相关配置 @Config
我想启动不同主机上的每个控制器。只有一个应用程序可以通过Spring引导来处理它吗?每个主机使用Spring配置文件。然后使用env变量作为要加载的配置属性的输入。看 例如
app1
有一个指定host1
应用程序加载application-host1.properties
(或等效)
app2
具有指定host2
的env var,以便您可以将其替换为application.properties
的properties变量
在本地运行时,您可以指定主机ID
,然后加载要测试的相关配置
@ConfigurationProperties(“应用程序-${HOST\u ID}.properties”)
在您的@配置中
类
Spring还允许您使用
@DependsOn
将各种类加载到Spring配置上下文中,这样您就可以将这些类组合在一起,以便只加载各种控制器如果您想在两个不同的主机上运行两个不同的控制器,则需要两个单独的JAR
无法将单个部署拆分为在不同服务器上运行
您可以指定不同的配置文件,但它们适用于整个部署。您不能将其拆分。不可能。在不同的主机上运行意味着两个JAR分别部署。您确定吗?Spring配置文件呢?它仍然是一个罐子。您可以使用概要文件按环境设置值,但它不允许您在一台服务器上运行JAR的一部分,而在另一台服务器上运行其余部分。可执行JAR一次运行在一台服务器上。即使使用配置文件,也无法回避这个问题。所以即使使用spring配置文件,它们也只能加载单个环境?是的。配置文件应用于整个部署。部署按主机进行量化:一个部署,一个主机。不分裂。当我使用概要文件时,当我在本地运行时,它们是“默认”的;当我将JAR部署到云时,它们是“云”的。我不会选择控制器的部署位置,因为它们都在同一个JAR中。这并没有给出任何信息,我需要两个应用程序。不,您将有1个应用程序+2个(或更多)应用程序配置,它们基于某个预先设置的环境变量,在每个主机上加载同一应用程序的不同配置。
public firstController() {
...
}
public secondController() {
...
}