如何获取所有Spring配置文件名称?

时间:2016-08-18 00:18:56

标签: java spring spring-profiles

我想知道是否有任何以编程方式获取所有 Spring个人资料名称,处于活动状态还是非活动状态?

有几个问题,只需要活动配置文件的名称。我的问题没有通过这些问题回答,因为我还需要非活动配置文件的名称。

原因:我想在下拉列表中显示所有此类个人资料名称,用户可以从中选择要使用的个人资料。

1 个答案:

答案 0 :(得分:2)

没有这样的事情。

当Spring初始化ApplicationContext时,它会维护活动配置文件,这些配置文件可以从系统属性spring.profiles.active轻松检索。

当它通过组件来注册相应的bean定义时,它会检查组件是否与某些Condition个对象匹配。其中一个是ProfileCondition,即

  

Condition根据@Profile注释的值进行匹配。

例如,如果您使用@Bean

注释了@Profile方法
@Bean
@Profile("foo-profile")
public Foo foo() {
    return new Foo();
}

Spring会使用ProfileCondition来匹配活动配置文件foo-profile。如果没有匹配,Spring将跳过此bean定义。

它实际上从未存储所有可能的@Profile值。