如何在春季通过注释设置活动配置文件?
例如:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { ApplicationConfig.class }, loader = AnnotationConfigContextLoader.class)
@ActiveProfiles( profiles = {ApplicationProfiles.TEST} )
public class CacheManagerTest {
...
}
对于JUnit测试,这种方法很完美,但是如何初始化生产应用程序上下文? (我没有任何主要方法/сlasses)
答案 0 :(得分:12)
您可以使用spring.profiles.active
属性在运行时传入活动的配置文件:
-Dspring.profiles.active="profile1,profile2"
有关配置文件的介绍,请参阅SpringSource blog post。
答案 1 :(得分:8)
如果您正在使用制作独立应用程序或Web应用程序,则可以通过这些方式传递活动配置文件,根据Spring blog
在Web应用程序中激活
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>spring.profiles.active</param-name>
<param-value>production</param-value>
</init-param>
</servlet>
使用手动创建的上下文激活
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.getEnvironment().setActiveProfiles("dev");
ctx.load("classpath:/com/bank/config/xml/*-config.xml");
ctx.refresh();