zoukankan      html  css  js  c++  java
  • spring-boot学习六:外部配置加载顺序

    1.概要

    spring boot不仅可以从工程的resource文件夹或者config文件夹下加载配置,还可以在以下位置加载配置:

    • 命令行参数
    • 来自java:comp/env的JNDI属性
    • Java系统属性(System.getProperties())
    • 操作系统环境变量
    • RandomValuePropertyResource配置的random.*属性值
    • jar包外部的application-{profile}.properties或application.yaml(带spring.profile)配置文件
    • jar包内部的application-{profile}.properties或application.yaml(带spring.profile)配置文件
    • jar包外部的application.properties或application.yaml(不带spring.profile)配置文件
    • jar包内部的application.properties或application.yaml(不带spring.profile)配置文件
    • @Configuration注解类上的@PropertySource
    • 通过SpringApplication.setDefaultProperties指定的默认属性

    其中上述中的标红部分是我们需要重点掌握内容,从上向下优先级越来越低,高优先级的配置会覆盖低优先级的配置,高优先级的配置和低优先级的配置都会生效,形成互补配置;

    2.示例

    2.1命令行参数

    以修改启动端口号为例,我们启动jar的同时可以指定启动的端口号为9909

     此时我们访问:

     如果想在启动的时候修改多个配置,中间用空格间隔即可,比如我们在修改端口的同时还想添加一个路径,就执行下面的这个命令:

    java -jar spingboot01-1.0-SNAPSHOT.jar --server.port=9909 --server.servlet.context-path=/boot

    其中:--server.port=9909用来修改端口号

       --server.servlet.context-path=/boot增加访问路径为/boot,此时我们想要执行结果如下:

     2.2jar包外和jar包内

    记住加载原则:由 jar 包外向 jar 包内进行寻找,优先加载带 profile 的文件,在加载不带 profile 的文件;

     举例:比如我们此时想修改多个加载参数,我们可以单拉出一个配置文件放在和 jar 包的同级目录下:

     此时如果启动这个 jar  肯定端口号为8801,访问路径为 /boot。此时我们在 jar 所在的同级目录放置一个配置文件,端口号为8888,访问路径为/hai;

     此时启动这个 jar

     此时我们访问:http://localhost:8888/hai/hello

     

     

  • 相关阅读:
    ubuntu14.04通过将语音,耳机没有声音
    网络编程easy错误点-手知道
    如何实现网页在线咨询框架
    C++定义自己的命名空间和头文件
    使用光标
    工作日两个日期之间的数
    Swift
    Swift
    Swift
    Swift
  • 原文地址:https://www.cnblogs.com/haibaowang/p/11462015.html
Copyright © 2011-2022 走看看