spring boot 与 操作系统环境变量的交互
----知识在于点滴的积累
我们知道,spring boot 可以根据环境的不同,分别获取
application-{env}.yml 中配置的参数值,但是 怎么来决定到底是哪个环境的配置文件生效呢?
这里就涉及到 与环境变量的交互,环境变量的设置方式就不说了,
这里有必要参考下System.getenv()和System.getProperty() 的区别
直入正题:
譬如我系统环境变量里,配置的有 DEPLOY_ENV=PRE
那么就可以在application.properties使用如下
spring.profiles.active=${DEPLOY_ENV}
这样生效的是哪个配置文件 就晓得了。当然还有一些高级用法,譬如你忘了配置环境变量了,上面的写法就取不到值了,可以使用
spring.profiles.active=${DEPLOY_ENV:dev}
使用冒号分隔,当环境变量中DEPLOY_ENV为空时,就会使用 dev(开发环境配置),当然你也必须有
application-dev.properties 文件!
是不是从此配置信息就再也不用妈妈担心了?~~~~~~~~~~~~~~~~