• 38.SpringBoot外部化配置及其配置优先级


    Spring Boot允许您外部化配置,以便您可以使用同一个应用程序代码在不同的环境中。 您可以使用属性文件,YAML文件,环境变量和
    外部化配置的命令行参数。 属性值可以直接注入您的bean使用@Value注释,通过Spring的Environment抽象访问或绑定到
    通过@ConfigurationProperties结构化对象。Spring Boot使用一个非常特殊的PropertySource命令,旨在允许合理的覆盖
    价值观 按以下顺序考虑属性:

    优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会
    形成互补配置
    1.命令行参数
       所有的配置都可以在命令行上进行指定
        java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
       多个配置用空格分开; --配置项=值
    2.来自java:comp/env的JNDI属性
    3.Java系统属性(System.getProperties())
    4.操作系统环境变量
    5.RandomValuePropertySource配置的random.*属性值
        由jar包外向jar包内进行寻找;
         优先加载带profile
    6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件[和jar包在同一文件夹下]
    7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
       再来加载不带profile
    8.jar包外部的application.properties或application.yml(不带spring.profile)配置文件[和jar包在同一文件夹下]
    9.jar包内部的application.properties或application.yml(不带spring.profile)配置文件
    10.@Configuration注解类上的@PropertySource
    11.通过SpringApplication.setDefaultProperties指定的默认属性
       所有支持的配置加载来源


    命令行配置属性

    默认情况下,SpringApplication将转换任何命令行选项参数(以' --'开头,例如 --server.port = 9000)到属性并将其添加到Spring Environment.

     微信公众号

     

     

  • 相关阅读:
    JS制作蔡徐坤打篮球小游戏(鸡你太美?)
    2019-泰迪杯c题数据处理,WGS-84(世界标准地理坐标系) 转为 BD-09(百度地理坐标系)
    浅谈指令系统---(汇编语言)
    PyGame实现情人节表白利器
    Python-王者荣耀自动刷金币+爬取英雄信息+图片
    SSM-网站前台博客系统制作(2)---完善版Google的Kaptcha
    UML 用例之间的关系
    在配置文件web.xml中配置Struts2的启动信息
    IO异常处理
    设计监听器
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12190362.html
Copyright © 2020-2023  润新知