通过系统环境变量,设置参数
一、场景描述
我不想要每次打包的时候去选择打包的环境变量,因为人为的操作总会有失误的地方,每次发包打包很麻烦倒是其次,就怕正式环境和测试环境链接的部分参数不一样,一时半会也看不出来,就容易出很大的问题。本人4年前就犯过这样的错误,正式环境跳转到测试环境,页面看起来是一样,最终没有检测到,最后导致记忆深刻的损失 多个拉杆箱被抽没了。。 ,自此之后我就更愿意相信脚本/工具,不愿意相信人为的操作,当然我当时的问题和这个还不太一样,具体原因还比较复杂,这里只是举一个例子。
可能有的人会说,你这个强词夺理。你为啥不用Jenkins这样的工具去做呢?这样不是更好么?的确,用Jenkins之后呢,这类问题肯定会很少发生的,但是我们暂时先不讨论这个。目前作为一个新手JAVA小白,肯定还是想知道一些解决方案。毕竟不是所有项目都有Jenkins去做维护的,在开发过程中技术方案的提供者,方案肯定不能只有一个。所以很多东西还是需要去了解的。
二、操作方案
2.1 修改系统环境变量
1、修改base_profile
vim ~/.bash_profile
2、在最后添加一行
export SOA_ENV=pro
3、让配置生效
source ~/.bash_profile
4、查看是否生效[直接命令行输入]
echo $SOA_ENV
5、在springboot下面,设置配置如下:
6、编辑application.yml的内容如下:
spring:
profiles:
active: ${SOA_ENV:dev}
这里的意思是,当有环境变量的时候,就加载环境变量,没有的话,就默认dev
,这时候他就会再去加载application-dev.yml【存在的话,按照值去加载】
2.2 我遇到的问题
这里我遇到一个问题,我的配置生效了,可是启动的时候还是dev
最终我发现一个问题,我为了更好监听日志,我使用了screen去做的,导致变量修改,screen里面依然没有做改变。大家可以去试一试,如果是这个问题,可能需要释放掉当前的screen,然后重启起一个screen即可