java讲解Spring Boot配置文件级别 相互覆盖关系 解决一方不愿意给数据库密码 一方不愿意给源码时 数据库配置问题

前面 我们讲过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了
这个级别就会更高

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/132110953