zoukankan      html  css  js  c++  java
  • Spring-Boot学习纪要-2:Spring-Boot配置

      1.SpringBoot的全局配置名固定为*application.properties或*application.yml,更推荐使用yml的方式。

      2.YAML语法:

          1.k:(空格)v      表示一堆键值对(空格必须有)

                  2.以空格缩进来控制层级关系,只要左对齐的数据都认为是在一个层级

                  3.属性和值大小写敏感

         YAML值写法:

        “”:双引号,不会转义字符串里的特殊字符,比如" a b"输出为"a空格 b",单引号则会转义,所以会保持原语义

        对象、Map通过键值对表示,也支持行内写法 a:{k1: v1,k2: v2}

        List支持  -(空格)值 的语法,也支持行内写法 a:[v1,v2,v3]

      3.通过容器引入@ConfigurationProperties(prefix = "a")的标签,可以把以a为前缀的属性全部自动引入。

      4.通过引入spring-boot-configuration-processor的依赖包,可以让写配置时@ConfigurationProperties标签的属性自动提示。

          @Value也可以引入值,对比如下:         

              

      配置输入值可以结合@Validated做校验

      5.通过@ImportResource可以引入Spring配置文件,通过@PropertySource可以加载指定的配置文件,@Bean也可以达到加载组件的效果。也就是说,加载配置中属性,相较于之前@Value、@ConfigurationProperties,还可以使用@PropertySource;加载组件,出了老方式通过配置文件配,再@ImportResource引入,更推荐用@Bean引入的方式。(因为Spring-Boot的理念之一就是要简化配置)

      6.配置支持部分特殊写法,类似于${random.value}这种(个人猜测是SpEL语法)

      7.可以通过Profile结合properties做多环境配置管控,通过spring.profile.active语法标注激活环境。YAML更有强大的 --- 作为文档块分隔符来配合使用。

       8.配置文件加载位置和优先级从高到底为:

        -file:/config/

        -file:/

        -classpath:/config/

        -classpath:/

        (这里也就是我们可以通过外部环境配置来覆盖自带环境配置的原理,或者说提供默认配置及可被覆盖)

      9.外部配置加载顺序优先级从高到低:

        命令行参数

        来自java:comp/env的JNDI属性

        Java系统属性

        操作系统环境变量

        RandomValuePropertySource配置的random.*属性值

        jar包外部的application-{profile}.properties或yml

        jar包内部的application-{profile}.properties或yml

        jar包外部的application.properties或yml

        jar包内部的application.properties或yml

      10.自动配置原理

        通过@EnableAutoConfiguration开启,开启后会去读spring.facteries里面所有的EnableAutoConfiguration类,加入容器环境后会根据标签条件去执行对应的自动配置实现

        相关的标签,@Conditional派生注解

             

  • 相关阅读:
    webgl-hdr
    color-balance-of-photoshop-using-opencv
    ssr
    hello girl
    牛人收集的162个JavaScript学习教程pdf资源
    What is the order of postprocessing effects?
    glslsandbox
    Geeks3D’s GLSL Shader Library
    face swap
    Leetcode 115.不同的子序列
  • 原文地址:https://www.cnblogs.com/ybk2018af/p/12500997.html
Copyright © 2011-2022 走看看