首页 编程设计JAVA正文

springboot使用spring.profiles.active区分不同环境下配置文件

云水 JAVA 2020-08-25 09:53:45 2004 0 springboot

springboot可以通过application.properties或者bootstrap.properties里的spring.files.active配置文件区分不同环境下的配置。

bootstrap和application的区别

在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

因此,对比 application 配置文件,bootstrap 配置文件具有以下几个特性:
1.boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
2.boostrap 里面的属性不能被覆盖

bootstrap和application的应用场景

application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。

bootstrap 配置文件有以下几个应用场景。
1.使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
2.一些固定的不能被覆盖的属性;
3.一些加密/解密的场景;

所以对于springboot的单体应用来说,application.properties和bootstrap.properties都是可以设置spring.files.active属性来区分不同环境配置的。

比如我们可以设置test,dev,prod三个环境分别表示测试,开发,生产等环境

把三个环境相同的配置写到application.properties或者bootstrap.properties里,
不同的配置分别写到application-dev.properties,application-test.properties,application-prod.properties里或bootstrap-dev.properties,bootstrap-test.properties,bootstrap-prod.properties里
然后在application.properties或bootstrap.properties里设置spring.profiles.active=test来指定测试环境引用配置,这里的test指环境名,更改这里的名字来实现不同环境的配置切换
如:

image.png

image.png

如此,springboot就能自动识别切换不同的环境配置啦。

参考:
https://blog.csdn.net/youanyyou/article/details/81178311
https://blog.51cto.com/4923168/2177950

版权声明

1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)

本文链接:http://apod.cc/index.php/post/461.html

发表评论

评论列表(0人评论 , 2004人围观)
☹还没有评论,来说两句吧...