zoukankan      html  css  js  c++  java
  • 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.

     微信公众号

     

     

  • 相关阅读:
    对接天猫精灵X1 (https 的申请)
    第二个 SignalR,可以私聊的聊天室
    抽象工厂模式
    装饰者模式
    Signal 第一个简单Demo
    策略模式
    完美删除vector的内容与释放内存
    VC++的窗口句柄和窗口ID
    如何让模态对话画框达到非模态对话框 焦点无限制效果
    指针初始化为NULL的作用
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12190362.html
Copyright © 2011-2022 走看看