• Spring Boot 启动(二) 配置详解


    Spring Boot 启动(二) 配置详解

    Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html)

    1. Spring Boot 配置使用
    2. Spring Boot 配置文件加载流程分析 - ConfigFileApplicationListener

    一、Spring Framework 配置

    略...

    二、Spring Boot 配置

    2.1 随机数配置

    name.value=${random.int}
    name.int=${random.int}
    name.long=${random.long}
    name.uuid=${random.uuid}
    name.test1=${random.int(10)}
    name.test2=${random.int[10,20]}
    

    2.2 命令参数

    java -jar xxx.jar --server.port=8080
    

    2.3 多配置文件

    applicaiton-dev.properties 		# 开发环境
    applicaiton-test.properties 	# 测试环境
    applicaiton-prod.properties 	# 生产环境
    

    配置文件关联 profile 除了以上方式,还有另外两种方式:

    • applicaiton-dev.properties 文件名指定剖面
    • applicaiton.properties && spring.profile=dev 文件内容配置 spring.profile
    • applicaiton-dev.properties && spring.profile=dev 文件名指定剖面且文件内容配置 spring.profile

    2.3 spring.application.json

    spring.application.json 或 SPRING_APPLICATION_JSON 定义的 json 字符串。

    java -jar xxx.jar --spring.application.json='{"foo":"bar"}'
    

    2.4 Spring Boot 加载顺序

    1. 命令行传入的参数。
    2. SPRING_APPLICATION_JSON 中的属性。 SPRING_APPLICATION_JSON 是以 JSON 格式配置在系统环境变量中的内容。
    3. java:comp/env 中的 JNDI 属性。
    4. Java 的系统属性,可以通过 System.getProperties() 获得的内容操作。
    5. 系统的环境变量。
    6. 通过 random.* 配置的随机属性。
    7. 位于当前应用 jar 包之外,针对不同 {profile} 环境的配置文件内容,例如 application-{profile}.properties 或是 YAML 定义的配置文件。
    8. 位于当前应用 jar 包之内,针对不同 {profi1e} 环境的配置文件内容,例如 application-{profile}.properties 或是 YAM 定义的配置文件。
    9. 位于当前应用 jar 包之外的 application.properties 和 YAML 配置内容。
    10. 位于当前应用 jar 包之内的 application.properties 和 YAML 配置内容。
    11. 在 @Configuration 注解修改的类中,通过 @PropertySource 注解定义的属性。
    12. 应用默认属性,使用 SpringApplication.setDefaultProperties 定义的内容。

    以上配置属性加载类如下:

    1. 第一项是在 prepareEnvironment -> configureEnvironment -> configurePropertySources 定义的 CommandLinePropertySource。
    2. 第二项是在 spring.factories 中定义的 SpringApplicationJsonEnvironmentPostProcessor 处理,也实现了 EnvironmentPostProcessor 接口,优先级高于 ConfigFileApplicationListener。
    3. 第三-五项是 Spring Framework 标准的属性,初始化 Environment 时配置。
    4. 第六项是在 ConfigFileApplicationListener 中定义的 RandomValuePropertySource。
    5. 第七-十项是在 ConfigFileApplicationListener 中加载配置文件,也实现了 EnvironmentPostProcessor 接口。

    每天用心记录一点点。内容也许不重要,但习惯很重要!

  • 相关阅读:
    bzoj2055: 80人环游世界(有源汇上下界可行最小费用流)
    bzoj千题计划158:bzoj2406: 矩阵(有源汇上下界可行流)
    bzoj1220:[HNOI2002]跳蚤
    [USACO4.3]逢低吸纳Buy Low, Buy Lower
    hdu 3488 Tour
    [网络流24题] 餐巾计划
    zkw费用流模板
    [网络流24题] 最长k可重区间集
    bzoj千题计划156:bzoj1571: [Usaco2009 Open]滑雪课Ski
    Codeforces Round #449 C. Willem, Chtholly and Seniorious (Old Driver Tree)
  • 原文地址:https://www.cnblogs.com/binarylei/p/10645232.html
Copyright © 2020-2023  润新知