在开发时,一般情况开发、测试和生产的环境都是不一样的,所以需要不同的配置文件。
配置文件目录:
application-dev.properties
test=dev
application-prod.properties
test=prod
application-test.properties
test=test
激活profile
1、
SpringApplication springApplication = new SpringApplication(App.class);
springApplication.setAdditionalProfiles("dev");
ConfigurableApplicationContext context = springApplication.run(args);
System.out.println(context.getEnvironment().getProperty("test"));
2、使用main方法的arguments参数:--spring.profiles.active=dev(如需要开启多个profile,可以使用“,”隔开)
@Profile注解
ProfileConfig.java
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
@SpringBootConfiguration
public class ProfileConfig {
@Bean
public User createRunnable1(){
System.out.println("===1===");
return new User();
}
@Bean
@Profile("dev")
public User createRunnable2(){
System.out.println("===2===");
return new User();
}
@Bean
@Profile("prod")
public User createRunnable3(){
System.out.println("===3===");
return new User();
}
}
运行
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(App.class);
springApplication.setAdditionalProfiles("dev");
ConfigurableApplicationContext context = springApplication.run(args);
System.out.println(context.getEnvironment().getProperty("test"));
}
}
结果
若是注解在配置类上,则配置类里面的bean容器全部都会生成。