部署springboot项目读取外部配置文件实现过程

 更新时间:2026年04月25日 15:11:07   作者:今日相乐,皆当喜欢  
本文介绍了Spring Boot项目如何读取外部配置文件,以实现应用与配置分离,主要通过将配置文件放在jar包的同级目录中,或通过启动命令指定配置文件路径等方式实现,这种方法可以避免每次部署时修改配置文件的麻烦

部署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 &

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • spark中使用groupByKey进行分组排序的示例代码

    spark中使用groupByKey进行分组排序的示例代码

    这篇文章主要介绍了spark中使用groupByKey进行分组排序的实例代码,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • SpringBoot详解整合Redis缓存方法

    SpringBoot详解整合Redis缓存方法

    本文主要介绍了SpringBoot整合Redis缓存的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • SpringBoot多模块搭建的实现示例

    SpringBoot多模块搭建的实现示例

    多模块开发是指将一个大型应用程序拆分为多个模块,本文主要介绍了SpringBoot多模块搭建的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 扩展Hibernate使用自定义数据库连接池的方法

    扩展Hibernate使用自定义数据库连接池的方法

    这篇文章主要介绍了扩展Hibernate使用自定义数据库连接池的方法,涉及Hibernate数据库操作扩展的相关技巧,需要的朋友可以参考下
    2016-03-03
  • Java中抽象类和接口介绍

    Java中抽象类和接口介绍

    大家好,本篇文章主要讲的是Java中抽象类和接口介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • SpringBoot使用AOP实现统计全局接口访问次数详解

    SpringBoot使用AOP实现统计全局接口访问次数详解

    这篇文章主要介绍了SpringBoot通过AOP实现对全局接口访问次数的统计,文章从相关问题展开全文内容详情,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Intellij IDEA的一些调试技巧(小结)

    Intellij IDEA的一些调试技巧(小结)

    本篇文章主要介绍了Intellij IDEA的一些调试技巧(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • MybatisX-Generator不生成domain文件夹的问题及解决

    MybatisX-Generator不生成domain文件夹的问题及解决

    在使用MybatisX-Generator生成数据库表实体时,如果发现没有生成domain文件夹以及User.java文件,是因为MybatisX版本更新,最新版需要在options里额外勾选model才能生成domain,勾选model并点击finish后,成功生成domain文件夹及User.java文件
    2025-01-01
  • 带你走进Maven的大门-最全Maven配置及集成idea工具总结

    带你走进Maven的大门-最全Maven配置及集成idea工具总结

    Maven项目对象模型(POM),是一个项目管理工具可以通过一小段描述信息来管理项目的构建,报告和文档的软件.那我们想要在IDEA中使用Maven得进行一些配置,接下来我们具体看一下是如何配置使用的,需要的朋友可以参考下
    2021-06-06
  • Java实现TCP和UDP协议详解

    Java实现TCP和UDP协议详解

    这篇文章主要介绍了Java实现TCP和UDP协议详解,TCP(传输控制协议)和UDP(用户数据报协议)是两种最常用的传输层协议,它们都用于在网络上传输数据,但是它们之间有很多不同之处,需要的朋友可以参考下
    2023-07-07

最新评论