SpringBoot配置文件加载


记录自己的一部分学习经历。

1.SpringBoot配置文件加载方式

  1.1 SpringBoot项目加载内部配置文件

    1.1.1 SpringBoot加载内部配置文件的顺序

      项目目录结构为标准的maven项目结构,如下图所示

      

 

      先写出结论吧:file:./config > file:./ > classpath:/config > classpath:/   

      具体可参考SpringBoot文档:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config   

      在项目中表示如下图所示:

      

       这里先验证下classpath:/config/application.yml和classpath:/application.yml的优先级

      config/application.yml

       

      resources/application.yml

      

      启动项目,控制台输出如下所示

      

      起作用的是config/application.yml,因为此优先级比较高。其他的优先级比较小伙伴可以自行测试。

     

  1.2 SpringBoot项目打成jar包之后加载外部的配置文件

    将项目打成jar包之后,可以通过命令行或者添加外部的目录来实现外部配置文件的加载。顺道一提,在项目的根路径config和根路径下的配置文件并不会被打包到jar中,即下图两个配置文件并不会打到jar包中。

      

      解压jar包之中并没有配置文件

      

      回归正题,打成jar包之后,可以在jar包当前目录下建config,或者直接在jar包同目录下增加配置文件。

      

      jar包外存在两个配置文件(config目录下也有一个application.yml),项目启动时,优先读取config目录下的application.yml。但是,如果项目的resources/application.yml之中已经设置了spring.profiles.active,

      那么项目启动时直接读取resources下的application.yml配置文件,不会读取jar包外的配置文件。

      除此之外,也可以在命令行模式下通过spring.config.location增加自定义的配置文件存放目录,该命令设置的配置文件优先级高于别的(最高)。

      第一次写博文,如有错误和不足请各位大佬指正

 

    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM