Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导单个应用程序,在两个不同的主机上有两个控制器_Java_Spring Boot - Fatal编程技术网

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() {
...
}