spring boot配置文件

配置文件详解:Properties和YAML

一.配置文件的生效顺序,会对值进行覆盖:

  1. @TestPropertySource 注解
  2. 命令行参数
  3. Java系统属性(System.getProperties())
  4. 操作系统环境变量
  5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource
  6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
  7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
  8. 在@Configuration类上的@PropertySource注解
  9. 默认属性(使用SpringApplication.setDefaultProperties指定)

二.配置随机值

roncoo.secret=${random.value}
roncoo.number=${random.int}
roncoo.bignumber=${random.long}
roncoo.number.less.than.ten=${random.int(10)}
roncoo.number.in.range=${random.int[1024,65536]}

读取使用注解:@Value(value = "${roncoo.secret}")

注:出现黄点提示,是要提示配置元数据,可以不配置

三.属性占位符
当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

roncoo.name=www.roncoo.com
roncoo.desc=${roncoo.name} is a domain name

四.Application属性文件,按优先级排序,位置高的将覆盖位置低的

  1. 当前目录下的一个/config子目录
  2. 当前目录
  3. 一个classpath下的/config包
  4. classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)

五. 配置应用端口和其他配置的介绍

#端口配置:
server.port=8090
#时间格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#时区设置
spring.jackson.time-zone=Asia/Chongqing

六. 使用YAML代替Properties
注意写法:冒号后要加个空格

配置文件-多环境配置

一.多环境配置的好处:
1.不同环境配置可以配置不同的参数
2.便于部署,提高效率,减少出错

二.Properties多环境配置

  1. 配置激活选项
    spring.profiles.active=dev
    2.添加其他配置文件

三.YAML多环境配置
1.配置激活选项

    spring:
      profiles:
              active: dev
2.在配置文件添加三个英文状态下的短横线即可区分
---
 spring:
  profiles: dev

四.两种配置方式的比较
1.Properties配置多环境,需要添加多个配置文件,YAML只需要一个配件文件。
2.书写格式的差异,yaml相对比较简洁,优雅.
3.YAML的缺点 不能通过@PropertySource注解加载。如果需要使用@PropertySource注解的方式加载值,那就要使用properties文件。

五.如何使用

    java -jar myapp.jar --spring.profiles.active=dev

你可能感兴趣的:(spring boot配置文件)