部署springboot项目读取外部配置文件

我们在部署springboot项目的时候,经常会遇到这样的情况:测试环境与生产环境的配置不一样,这就导致每次部署的时候都要修改配置文件再打包,即使用了nacos进行配置管理,但测试环境与生产环境的nacos部署的地方肯定不一样,所以每次部署的时候还是需要修改配置文件里的nacos地址,这样比较麻烦,有时候还可能会忘记修改。

经过查资料了解到其实springboot可以读取外部配置文件,即在springboot应用启动后,不直接使用jar包里面的配置文件,而是读取某个目录下的配置文件,然后进行覆盖,从而实现应用与配置分离,这样就不用每次部署都修改配置文件了。

下面是官方文档里的描述:

 springboot官方文档地址

从官方文档里的描述可以知道:SpringApplication读取配置文件的方式有四种,并且是有优先级的,所有方式下的配置文件都会被读取,高优先级的内容会覆盖低优先级的内容

四种读取方式如下:

1、在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹里

2、直接把配置文件放到jar包的同级目录

3、在classpath下建一个config文件夹,然后把配置文件放进去

4、在classpath下直接放配置文件

项目被打成jar包后,配置文件会被放在BOOT-INF的classes目录下:

 这就是上面所说的第四种读取方式,也是优先级最低的读取方式

综上所述,我们可以使用第一、二种配置文件读取方式来实现应用与配置分离,我这里是用的第二种方式,将配置文件放到了jar包的同级目录:

这样当项目启动的时候,它就会去读取这个配置文件,并且覆盖掉jar包里的配置文件

如果想把配置文件放在任意目录,那就需要在jar包的启动命令里指定配置文件的路径,参数如下:

spring.config.location=xxx

完整配置示例如下:

nohup java -jar nms-alarm-manager.jar --spring.config.location=/home/my-config/bootstrap.yml &
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值