Java 如何获取所有Spring配置文件名称?
我想知道是否有任何编程方法可以获得所有Spring配置文件的名称,活动和非活动 有几个问题只需要活动配置文件的名称。我的问题没有回答这些问题,因为我还需要非活动配置文件的名称Java 如何获取所有Spring配置文件名称?,java,spring,spring-profiles,Java,Spring,Spring Profiles,我想知道是否有任何编程方法可以获得所有Spring配置文件的名称,活动和非活动 有几个问题只需要活动配置文件的名称。我的问题没有回答这些问题,因为我还需要非活动配置文件的名称 原因:我想在下拉列表中显示所有这样的配置文件名称,用户可以从中选择要使用的配置文件。没有这样的东西 当Spring初始化ApplicationContext时,它会维护活动的配置文件,这些配置文件可以从系统属性Spring.profiles.active轻松检索 当它通过组件注册相应的bean定义时,它会检查组件是否匹配某
原因:我想在下拉列表中显示所有这样的配置文件名称,用户可以从中选择要使用的配置文件。没有这样的东西 当Spring初始化
ApplicationContext
时,它会维护活动的配置文件,这些配置文件可以从系统属性Spring.profiles.active
轻松检索
当它通过组件注册相应的bean定义时,它会检查组件是否匹配某个对象集。其中一个是ProfileCondition
,它是
基于@Profile
注释的值匹配的条件
例如,如果您有一个用@Profile
注释的@Bean
方法
@Bean
@Profile("foo-profile")
public Foo foo() {
return new Foo();
}
Spring将使用ProfileCondition
将foo配置文件
与活动配置文件进行匹配。如果没有匹配项,Spring将跳过这个bean定义
它从来不会实际存储所有可能的@Profile
值。对于投票被否决的人,你能解释一下你为什么这么做吗?我认为这是一个公平的问题。激活的配置文件在启动时加载。未加载非活动配置文件。此外,您不能在运行时更改活动配置文件。它需要重新启动应用程序,或者更准确地说是重新加载spring容器,例如,请参阅。这对我来说也是一个公平的问题。我想显示命令行应用程序的所有可能配置文件。不带任何参数调用该命令将列出所有配置文件。对于下一个命令执行,用户可以从控制台输出中显示的列表中提供参数。