zoukankan      html  css  js  c++  java
  • springboot(五) 加载配置文件优先级顺序

    github代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service

    1.springboot配置文件的加载位置

    1.1 springboot启动会扫描一下位置的application.properties或者application.yml作为默认的配置文件
    工程根目录:./config/
    工程根目录:./
    classpath:/config/
    classpath:/
    加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置
    
    也可以通过指定配置spring.config.location来改变默认配置,一般在项目已经打包后,我们可以通过指令 
      java -jar xxxx.jar --spring.config.location=D:/kawa/application.yml来加载外部的配置

     我们来在IDEA里面实验一下优先级加载

    先配置classpath:/appliaction.yml 的服务端口8099

    再新建classpath:/config/application.yml配置文件,指定服务端口8090
    启动工程看下控制台的输出,发现config里面的配置生效了,因为优先级高

    如果大家想测试上面排一二的优先级可以自行测试,这边就不一 一测试了,不过需要注意的是在工程根路径下或者根路径的config下面的配置文件,在工程打包时候不会被打包进去,大家可以自己测试看下。

    2.springboot外部配置的加载顺序(参考官方文档) 

    2.1 springboot外部配置加载顺序如下,优先级从高到底,并且高优先级的配置覆盖底优先级的配置形成互补配置
    2.1.1 命令行参数
    => 比如:java -jar xxxx.jar --server.port=8087 --server.context-path=/show 多个配置中间用空格分开

    由jar包外向jar包内进行加载,比如和工程平级目录下面的配置文件优先级高于jar包内部的配置文件


    优先加载带profile
    2.1.2 jar包外部的application-{profile}.propertie或application.yml(带spring.profile)配置文件           
    2.1.3 jar包内部的application-{profile}.propertie或application.yml(带spring.profile)配置文件

    再来加载不带profile
    2.1.4 jar包外部的application.propertie或application.yml(不带spring.profile)配置文件
    2.1.5 jar包内部的application.propertie或application.yml(不带spring.profile)配置文件
  • 相关阅读:
    redis
    魔法方法
    vue
    bbs技术总结
    Linux
    爬虫
    路飞项目
    Django-rest framework框架
    Django框架
    WEB
  • 原文地址:https://www.cnblogs.com/hlkawa/p/9723838.html
Copyright © 2011-2022 走看看