如何通过注解在Spring中设置活动配置文件?

15

如何通过注解在Spring中设置活动配置文件?

例如:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { ApplicationConfig.class }, loader = AnnotationConfigContextLoader.class)
@ActiveProfiles( profiles = {ApplicationProfiles.TEST} )
public class CacheManagerTest {
     ...
}

对于JUnit测试,这很完美,但是我如何初始化生产应用程序上下文?(我没有任何主要方法/类)


1
你在生产应用中使用什么类型的配置?这是一个Web应用程序吗? - Kevin Bowersox
嗨@Malahov,希望我的答案解决了你的问题。在生产环境中使用标准系统属性是启用配置文件的常规方式。如果这对你有用,请不要忘记将我的答案标记为正确答案。干杯。 - Clint Eastwood
2个回答

12

你能否提供这个功能的相关文档链接? - Grzegorz Żur

8

如果您正在制作独立应用程序或 Web 应用程序,您可以按照以下方式传递活动配置文件,具体方法请参考Spring 博客的描述。

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();

我没有web.xml文件(这不是Web应用程序)。如果手动激活,则通过配置配置文件的想法会丢失。 - Malahov
第一个代码块是错误的。@Profile并不会“激活”配置文件,它只是描述了当相关的配置文件被激活时,该配置将被激活。 - Clint Eastwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接