【发布时间】:2015-10-01 19:53:28
【问题描述】:
我有一个@Configuration 类。 这个类,有一个@PropertySource。
我希望每个应用程序都有一个不同的属性。
例子:
@Configuration
@PropertySource("file:${my.properties-file}")
public class Config {
}
我想通过上下文名称为每个应用程序配置每个属性。
我的应用服务器目录结构:
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
如何创建自定义属性源解析器以注入/考虑应用程序上下文名称以加载属性文件?
【问题讨论】:
-
这对我来说有点不清楚,您尝试过这个并且没有效果吗?还是它有效但工作量太大?还有更好的方法来为单个战争拥有多个上下文,然后多次重命名和部署它。这也与 SpEL 无关,因为这里只有属性占位符,而不是 SpEL。
-
是的@M.Deinum,我改变了问题。我错了,我以为SpEL是用来解析属性源位置的。
-
不要使用
@PropertySource,而是使用ApplicationContextInitializer,并手动注册PropertySource。
标签: java spring configuration spring-environment