spring boot 使用不同的profile来加载不同的配置文件
在开发过程之中,经常需要在开发和测试环境中进行互相切换,当切换的同时需要加载相应的配置文件,因此要经常
性的对配置文件进行相应的修改,长此以往感到十分痛苦。如果能针对开发和测试环境分别建两个不同的配置文件,当需要
进行切换时程序能自动加载相应的配置该多好,可以使用spring提供的profile来实现这样的需求。
1 @SpringBootApplication 2 public class Application { 3 4 public static void main(String[] args) { 5 SpringApplication sa=new SpringApplication(Application.class); 6 sa.setAdditionalProfiles("test"); 7 ApplicationContext appctx= sa.run(args); 8 9 try { 10 ((ConfigurableApplicationContext)appctx).close(); 11 } catch (Exception e) { /*ignore*/ } 12 } 13 }
红色部分的代码是告诉spring加载带有-test后缀的配置文件。例如application-test.properties
这样就加载了测试环境的配置。如若要切换到开发环境中只需要将profile设置为dev,
则spring只会加载application-dev.properties,而不会加载application-test.properties
想深入了解profile,可以详细阅读org.springframework.boot.context.config.ConfigFileApplicationListener类的源码