![b77b1099933272421c7828b9eb131902.png](https://i-blog.csdnimg.cn/blog_migrate/9818640cb3f17639ab52661dfd070842.jpeg)
一.根据springboot的配置文件命名约定,结合active可在不同环境引用不同的properties外部配置
参考官方文档:
![b1c3b66fdbd906774718c8b9a8f69564.png](https://i-blog.csdnimg.cn/blog_migrate/a3e92d9ce062dc98bd3b8a6fa195fa96.jpeg)
根据文档描述,我们除application.properties外,还可以根据命名约定(
命名格式:application-{profile}.properties)来配置,如果active赋予的参数没有与使用该命名约定格式文件相匹配的话,app则会默认从名为application-default.properties 的配置文件加载配置。
如:spring.profiles.active=hello-world,sender,dev 有三个参数,其中 dev 正好匹配下面配置中的application-dev.properties 配置文件,所以app启动时,项目会先从application-dev.properties加载配置,再从application.properties配置文件加载配置,如果有重复的配置,则会以application.properties的配置为准。(配置文件加载顺序详见官方文档:24. Externalized Configuration)
![f3e002b01f4d2db425acdff88d1ae4c6.png](https://i-blog.csdnimg.cn/blog_migrate/fe5a90c089fe843980526b79281104be.jpeg)
如此,我们就不用为了不同的运行环境而去更改大量的环境配置了(此处,dev、pro、test分别为:开发、生产、测试环境配置)
二.通过@Profile注解匹配active参数,动态加载内部配置
参考官方文档:
![66e7545ec6c1a31306e8f4394e062be6.png](https://i-blog.csdnimg.cn/blog_migrate/9d4f7d836134e87b691be17e8c97cf15.jpeg)
1.@Profile注解使用范围:@Configration 和 @Component 注解的类及其方法,其中包括继承了@Component的注解:@Service、@Controller、@Repository等…
2.@Profile可接受一个或者多个参数,例如:
@Profile({"tut1