如何获取所有Spring配置文件名称?
问题描述:
我想知道是否有任何编程方式全部春季配置文件名称,活动和不活动?如何获取所有Spring配置文件名称?
有几个问题只需要活动配置文件的名称。我的问题没有回答这样的问题,因为我还需要不活动的配置文件的名称。
原因:我想在下拉菜单中显示所有这些配置文件名称,用户可以从中选择要使用的配置文件。
答
有没有这样的事情。
当Spring初始化一个ApplicationContext
时,它维护活动配置文件,这些配置文件很容易从系统属性spring.profiles.active
中检索。
当它通过组件注册相应的bean定义时,它会检查组件是否匹配某些Condition
对象集。其中之一是一个ProfileCondition
,这是
Condition
该匹配基于一个@Profile
注解的值。
例如,如果您有相关@Profile
@Bean
@Profile("foo-profile")
public Foo foo() {
return new Foo();
}
春天注释将使用ProfileCondition
匹配foo-profile
防范主动配置文件的@Bean
方法。如果没有匹配,Spring将跳过这个bean定义。
它从来没有实际存储所有可能的@Profile
值。
对于谁投下了票,谁能解释你为什么这样做?我认为这是一个公平的问题。 – Ahmad
*启动*配置文件被加载*启动*。未加载配置文件。另外,您无法在运行时更改活动配置文件。它需要重新启动应用程序,或者更确切地说是重新装载弹簧容器,例如,请参阅http://stackoverflow.com/q/28541138/5221149。 – Andreas
这对我来说也是一个公平的问题。我想为命令行应用程序显示所有可能的配置文件。不带任何参数调用该命令将列出所有配置文件。对于下一个命令执行,用户可以从控制台输出中显示的列表中提供参数。 –