在我正在进行的项目中,我们需要多个配置文件,即"默认"和"测试".为了解决这个问题,我们已经实现了一个主要的上下文类,ApplicationContext.java,有2个公共静态内部类:其中一个定义了默认的配置文件,其他的定义测试配置文件.我们的web.xml设置为目标ApplicationContext.java.
代码如下:
@Configuration
//import common beans
public class ApplicationContext {
@Configuration
@Profile("default")
public static class DefaultContext {
//default beans
}
@Configuration
@Profile("test")
public static class TestContext {
//test beans
}
}
Run Code Online (Sandbox Code Playgroud)
我对这个问题是主要的上下文类,ApplicationContext.java,是在生产环境(即的src/main/JAVA),在测试环境中文件的引用.如果有一种更好的方法来定义这些配置文件而不将此依赖关系从生产代码引入测试代码,那当然是更可取的.
我们在测试类中使用jetty实例测试了这些情况,从主方法开始.使用以下命令运行此实例:
System.setProperty("spring.profiles.active", "test");
Run Code Online (Sandbox Code Playgroud)