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

问题描述:

我想知道是否有任何编程方式全部春季配置文件名称,活动和不活动?如何获取所有Spring配置文件名称?

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

原因:我想在下拉菜单中显示所有这些配置文件名称,用户可以从中选择要使用的配置文件。

+0

对于谁投下了票,谁能解释你为什么这样做?我认为这是一个公平的问题。 – Ahmad

+0

*启动*配置文件被加载*启动*。未加载配置文件。另外,您无法在运行时更改活动配置文件。它需要重新启动应用程序,或者更确切地说是重新装载弹簧容器,例如,请参阅http://stackoverflow.com/q/28541138/5221149。 – Andreas

+0

这对我来说也是一个公平的问题。我想为命令行应用程序显示所有可能的配置文件。不带任何参数调用该命令将列出所有配置文件。对于下一个命令执行,用户可以从控制台输出中显示的列表中提供参数。 –

有没有这样的事情。

当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值。