通过系统环境变量,设置参数

  • 一、场景描述
  • 二、操作方案
  • 2.1 修改系统环境变量
  • 2.2 我遇到的问题


一、场景描述

我不想要每次打包的时候去选择打包的环境变量,因为人为的操作总会有失误的地方,每次发包打包很麻烦倒是其次,就怕正式环境和测试环境链接的部分参数不一样,一时半会也看不出来,就容易出很大的问题。本人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下面,设置配置如下:

一个java方法 参数自动匹配怎么设置 java设置系统参数_SOA


6、编辑application.yml的内容如下:

spring:
  profiles:
    active: ${SOA_ENV:dev}

这里的意思是,当有环境变量的时候,就加载环境变量,没有的话,就默认dev
,这时候他就会再去加载application-dev.yml【存在的话,按照值去加载】

2.2 我遇到的问题

这里我遇到一个问题,我的配置生效了,可是启动的时候还是dev

最终我发现一个问题,我为了更好监听日志,我使用了screen去做的,导致变量修改,screen里面依然没有做改变。大家可以去试一试,如果是这个问题,可能需要释放掉当前的screen,然后重启起一个screen即可