[Spring Boot] Spring Boot 配置文件加载

  • 加载顺序

    1. 这里是列表文本命令行参数
    2. SPRING_APPLICATION_JSON 参数
    3. 从java:comp/env 加载 JNDI 属性
    4. Java系统属性 (System.getProperties())
    5. 操作系统环境变量
    6. 如果有使用 random.* 属性配置,则使用 RandomValuePropertySource 产生
    7. 外部特定应用配置文件 例如:application-{profile}.properties 或者 YAML variants
    8. 内部特定应用配置文件 例如:application-{profile}.properties 或者 YAML variants
    9. 外部应用配置文件 例如:application.properties 或者 YAML variants
    10. 内部应用配置文件 例如:application.properties 或者 YAML variants
    11. 加载@Configuration类的 @PropertySource 或者 @ConfigurationProperties 指向的配置文件
    12. 默认配置,通过SpringApplication.setDefaultProperties 设置
  • 加载 可以使用 @Value("${name}")的方式加载某个配置项

可以为每个 application.properties 指定一个 name属性,然后通过 java -jar app.jar --name="***" 来指定。

SPRING_APPLICATION_JSON 属性,提供了一种基于命令行的环境变量模式 SPRING_APPLICATION_JSON='{"foo":{"bar":"spam"}}' java -jar myapp.jar 同样的目的也可以通过 系统环境变量 java -Dspring.application.json='{"foo":"bar"}' -jar myapp.jar 命令行参数 java -jar myapp.jar --spring.application.json='{"foo":"bar"}'

  • 配置随机值 主要用于安全,或者测试
        my.secret=${random.value}
        my.number=${random.int}
        my.bignumber=${random.long}
        my.number.less.than.ten=${random.int(10)}
        my.number.in.range=${random.int[1024,65536]}
  • 访问命令行属性 优先于其他配置,通过命令行 -- 添加任意配置项 如果不想使用命令行方式(出于安全),可以通过SpringApplication.setAddCommandLineProperties(false) 关闭此方式。

  • 应用配置文件 按顺序加载: 1. 当前目录下config目录 2. 当前目录 3. classpath 中 /config 包 4. classpath 根路径 如果不喜欢 application.properties 文件名,可以通过环境变量 spring.config.name 来指定。如:

java -jar myproject.jar --spring.config.name=myproject
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

spring.config.location 默认就是 classpath:,classpath:/config,file:,file:config/ 从左至右优先权依次递增,即,最后一个配置路径最先扫描

  • 特定配置文件 当不指定时,则默认为 “default” 即:会默认加载 application-default.properties 通过 spring.profiles.active 配置加载指定的文件名

转载于:https://my.oschina.net/roccn/blog/832387

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值