前面 我们讲过Spring Boot 修改临时变量的方式
但另一个场景 就是 我们 在本地开发环境 用的是一个配置 但如果项目经理上线 他想改这些配置 怎么弄呢
特别是数据库之类的配置 很多线上是不太一样的 那么 我们先看一个比较基本的方法
在配置文件的同目录下创建一个目录 叫 config 然后在下面再创建一个 application.yml 文件
我们先编写这样一段代码
server:
port: 8083
设置启动端口 为 8083
我们看到 之前我们自己写的这个配置文件 启动的端口是 80端口
然后我们启动项目
启动之后 我们会发现 端口启动在了 8083上
说明采用了我们config目录下的配置文件
所以 项目经理就可以在这个目录下创建 config 然后写配置文件来覆盖内容
这两个配置文件 config 下的优先级高 当 A设置了 B没设置的项 用A的配置 如果A没设置 B设置了 用B的
就是说 一个配置 一个文件中设置了 另一个文件没设置 就采用设置的那个 如果都设置了 用优先级高的
但是 不适合所有情况 例如一些银行的项目 他们 保密性比较强 那么 数据库密码可能不会愿意给你 你只需要帮他们开发完程序 他们自己部署
那么 这种也解决不了他们的问题
就好比 他们不想给数据库密码 你们不想给源码
这里 我们先将程序打个包
我们在本地打开这个包文件
然后 我们在终端运行jar包 可以看到 他目前采用了config中的配置 启动在了 8083端口
我们可以在本地随便创建一个文件夹 空的
然后 将jar包拷进来
然后 我们拷一个 application.yml 到这个目录下
然后 右键选择打开方式
可以选择任何一种编辑器打开 直接选idea也可以
然后 编写代码如下
server:
port: 8055
这次 我们直接将 端口设置为 8055
然后 在这个目录终端下运行jar包
可以看到 它的我们刚刚写的 8055
这个很简单 就是 如果在jar同目录下有application.yml文件 那么 这个 application.yml中配置的优先级 会高于前面说的两种
但这里 还有个更高级的
我们在jar目录下创建一个config目录
对 和前面那个 config一个意思 下面可以放一个application.yml文件
我们编写这个application.yml文件内容如下
server:
port: 8066
这次 我们设置端口 8066
然后再次运行jar
可以看到 又将端口覆盖为 8066了
这个级别就会更高