Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 @PropertySource和应用程序上下文名称_Java_Spring_Configuration_Spring Environment - Fatal编程技术网

Java @PropertySource和应用程序上下文名称

Java @PropertySource和应用程序上下文名称,java,spring,configuration,spring-environment,Java,Spring,Configuration,Spring Environment,我有一个@Configuration类。 此类具有@PropertySource 我希望每个应用程序都有一个不同的属性 例如: @Configuration @PropertySource("file:${my.properties-file}") public class Config { } 我想通过it上下文名称为每个应用程序配置每个属性 我的应用程序服务器目录结构: webapps/ my-app-a.war my-app-b.war 两者(my-app-a.wa

我有一个@Configuration类。 此类具有@PropertySource

我希望每个应用程序都有一个不同的属性

例如:

@Configuration
@PropertySource("file:${my.properties-file}")
public class Config {
}
我想通过it上下文名称为每个应用程序配置每个属性

我的应用程序服务器目录结构:

webapps/
     my-app-a.war
     my-app-b.war
两者(my-app-a.war和my-app-b.war)都是相同的web应用程序,区别在于它们部署在不同的上下文中两次

因此,我需要配置这2个属性:

my.properties.my-app-a=/source/properties/a.properties
my.properties.my-app-b=/source/properties/b.properties

如何创建自定义属性源解析程序来注入/考虑应用程序上下文名称以加载属性文件?

您是否尝试使用spring配置文件?
或者使用maven,您可以将属性放在pom中,并根据构建war的配置文件将它们插入属性文件中

您是否尝试使用spring配置文件?
或者使用maven,您可以将属性放在pom中,并根据构建war的配置文件,将它们插入属性文件中


我解决了为每个应用程序设置上下文配置的问题


不,我不能这样做。spring配置文件将由每个配置文件配置。属性否,我不能这样做。spring配置文件将由每个配置文件配置。属性我有点不清楚,您是否尝试过此方法,但它不起作用?或者说它工作了,但是工作太多了?还有更好的方法,可以为一场战争创建多个上下文,然后多次重命名和部署它。此外,这与SpEL无关,因为这里只有属性占位符,而不是SpEL。是@M.Deinum,我更改了问题。我错了,我以为SpEL是用来解析属性源位置的。不要使用
@PropertySource
,而是使用
ApplicationContextInitializer
,手动注册
PropertySource
。我有点不清楚,你试过了吗,没有成功?或者说它工作了,但是工作太多了?还有更好的方法,可以为一场战争创建多个上下文,然后多次重命名和部署它。此外,这与SpEL无关,因为这里只有属性占位符,而不是SpEL。是@M.Deinum,我更改了问题。我错了,我认为SpEL用于解析属性源位置。不要使用
@PropertySource
,而是使用
ApplicationContextInitializer
,手动注册
PropertySource