Spring 引导应用程序中的条件自动装配

Conditional auto-wiring in Spring boot application

我有一个 spring 引导应用程序,我想为其创建单独的外部和嵌入式配置文件 tomcat。我如何检查我的方法,哪个配置文件处于活动状态,以便我可以 运行 基于特定配置文件的代码。 我想出了一些代码,如下所示。

if("${spring.active.profile}".contains("external_tomcat_profile")) {
            //do something; 
 }else{
            //another thing;
        }

以上代码无效。我怎样才能实现这个功能?或者有更好的方法吗? 我正在使用两个配置文件,一个是用于测试的“测试”,另一个是嵌入式或外部 tomcat,所以使用这个条件是否正确

if("${spring.active.profile}".contains("external_tomcat_profile"))

您可以为此使用 Environment bean

@Autowired
Environment env;

public void aMethod() {
   String[] activeProfiles = env.getActiveProfiles();
}