开发环境配置指定(@Profile和@ActiveProfiles)

Exisi 2022-11-28 08:16:54
Categories: Tags:

 

 

注解

说明

@Profile

指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件

  • 加了此注解的bean,只有这个环境被激活的时候才能注册到容器中。默认是default环境
  • 写在配置类上,只有是指定的环境的时候,整个配置类里面的所有配置才能开始生效

例如@Prifile("dev")

参数

描述

value

配置的文件名

 

@ActiveProfiles

激活需要使用的配置环境

参数

描述

inheritProfiles

是否应该继承来自超类的 bean 定义配置文件。

value

profiles参数的别名

profiles

要激活的 bean 定义配置文件

resolver

用于以编程方式解析活动 bean 定义配置文件的 ActiveProfilesResolver 类型

 

示例

@Configuration

public class TestConfig {

    @Bean

    @Profile("dev")

    public TestBean devTestBean() {

        return new TestBean("from development profile");

    }

    

    @Bean

    @Profile("pro")

    public TestBean proTestBean() {

        return new TestBean("from production profile");

    }

}

 

@SpringBootTest

@ActiveProfiles("dev")

public class DemoApplicationTests {

 

    @Autowired

    private TestBean testBean;

 

    @Test

    public void contextLoads() {

        String content=testBean.getContent();

        System.out.println(content);

    }

}

 ​​​​​​​