场景与分析——spring.profiles.active 属性的设置
在 WebLogic中部署的项目, 有的场景下需要在项目之外设置应用的属性。举例来说:Spring Boot项目的spring.profiles.active 属性。
Spring Boot的spring.profiles.active 这个属性一般设置在 application.properties(yml) 文件中, 常用来标识环境,是开发环境、测试环境或是正式环境, 所以spring.profiles.active 对应的值一般有: dev, qas 和prod。
在实际开发中 application.properties(yml) 一般都会进行代码控管(比如Git)。 在本地开发、测试环境和正式环境这个文件会不同, 如果每次部署都去修改这个文件,然后提交进行部署势必有点麻烦, 是不是可以不用修改这个文件,就实现在不同环境的正确配置呢?
答案当然是可以的, 因为Spring Boot 支持配置外部化,支持包括系统环境变量、命令行参数的方式设定变量, 最重要的是,通过环境变量和命令行参数设置的属性值的优先级高于项目本身属性文件设置的值。也就是说如果在环境变量中设置了 spring.profiles.active的值是qas , 但是应用本身的属性文件的值为prod, 则最终的值还是qas。
解决方案
基于以上介绍和分析, 在 WebLogic 中设置或是覆盖应用需要的属性的方式至少有以下两种:
- 通过系统环境变量的设置达成