Spring Profiles:ActiveProfilesResolver的简单示例?

时间:2014-05-26 13:26:43

标签: java spring maven

我在做什么?
我有一个应用程序,我想在不同的环境中测试 - 开发,登台等

我做什么?
我使用maven cargo插件来部署应用程序war以运行集成测试。

我需要什么?
我需要根据货物设置的环境变量(

)来推测spring.profiles.active
                    <container>
                        <containerId>tomcat7x</containerId>
                        <systemProperties>
                            <spring.profiles.active>development</spring.profiles.active>
                        </systemProperties>
                    </container>

为什么吗
这样我就可以在我的集成测试@ActiveProfiles("development")中删除硬编码,测试可以从环境变量推断出活动的配置文件

问题
- 我发现Spring integration tests with profile提及使用ActiveProfilesResolver
- 我试图找到如何使用它,但找不到任何资源
我正在寻找有关如何使用ActiveProfilesResolver

的指导/建议

1 个答案:

答案 0 :(得分:12)

试试这个。我从不同的地方学习并创造了以下内容。它对我有用

public class SpringActiveProfileResolver implements ActiveProfilesResolver {

    @Override
    public String[] resolve(final Class<?> aClass) {
        final String activeProfile = System.getProperty("spring.profiles.active");
        return new String[] { activeProfile == null ? "integration" : activeProfile };
    }
}

在你的测试课上做这个

@ActiveProfiles(resolver = SpringActiveProfileResolver.class)
public class IT1DataSetup {
......
}