如何在Spring中使用application.properties设置配置文件?
我想使用application.properties文件设置配置文件,条目为:
mode=master
如何在我的context.xml文件中设置spring.profiles.active? init-param仅适用于web.xml上下文。
spring.profiles.active "${mode}"
有几种方法可以更改活动配置文件,其中任何一种都不直接来自属性文件。
- 您可以像在问题中一样使用
。 - 您可以在应用程序启动时提供系统参数
-Dspring.profiles.active="master"
- 您可以使用
context.getEnvironment().setActiveProfiles("container");
以编程方式从ApplicationContext
和setActiveProfiles(String...)
获取ConfigurableEnvironment
context.getEnvironment().setActiveProfiles("container");
您可以使用ApplicationListener
来监听上下文初始化。 关于如何在这里做到这一点的解释 。 您可以使用ContextStartedEvent
ContextStartedEvent event = ...; // from method argument ConfigurableEnvironment env = (ConfigurableEnvironment) event.getApplicationContext().getEnvironment(); env.setActiveProfiles("master");
您可以根据需要从属性文件中获取值"master"
。
您可以使用环境变量,系统变量(JVM或应用程序的-D选项)或将其放入JNDI(java:comp / env /。但是您不能将它放在属性文件中,因为在此之前需要它读取特定属性文件。
@Profile javadocs中有更多信息。
另一种解决方案是创建自己的ApplicationContextInitializer实现,该实现读取特定文件并激活给定的配置文件。