我想知道是否有任何以编程方式获取所有 Spring个人资料名称,处于活动状态还是非活动状态?
有几个问题,只需要活动配置文件的名称。我的问题没有通过这些问题回答,因为我还需要非活动配置文件的名称。
原因:我想在下拉列表中显示所有此类个人资料名称,用户可以从中选择要使用的个人资料。
答案 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
值。