SpringBoot的配置文件整理

文章目录

  • SpringBoot的全局配置文件介绍
  • 配置文件中配置自定义属性
        • 1. 绑定实体类和配置项
        • 2.自定义配置,增加配置提示。增加SpringBoot提供的,配置处理器依赖。
        • 3.yaml文件
  • 加载自定义配置文件
        • @PropertySource("classpath:test.properties")
        • @Configuration 配置类
  • 获取配置文件中的属性进行注入
        • @ConfigurationProperties(prefix="")
        • @Value
  • 随机数参数以及参数引用
        • 随机值设置
        • 参数间引用

SpringBoot的全局配置文件介绍

全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者
application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径
的/config,一般会选择resource目录。
加载顺序
SpringBoot的配置文件整理_第1张图片



配置文件中配置自定义属性

1. 绑定实体类和配置项

@ConfigurationProperties(prefix = “person”)注解的作用是将配置文件中以person开头的属性值通过
setXX()方法注入到实体类对应属性中

2.自定义配置,增加配置提示。增加SpringBoot提供的,配置处理器依赖。

<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<optional>trueoptional>
dependency>

3.yaml文件

YAML文件格式是Spring Boot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,
YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。application.yaml配置
文件的工作原理和application.properties是一样的,只不过yaml格式配置文件看起来更简洁一些。
yaml配置集合

#缩进式集合配置1
person:
  hobby:
    - play
    - read
    - sleep

#缩进式集合配置2
person:
  hobby:
    play,
    read,
    sleep
#行内集合配置 []还可以省略
person:
	hobby: [play,read,sleep]

yaml的Map集合和对象value配置

#缩进式对象/map值配置
person:
  map:
   k1: v1
   k2: v2
#行内式value配置
person:
	map: {k1: v1,k2: v2}



加载自定义配置文件

@PropertySource(“classpath:test.properties”)

注解在类上,可以加载自定义配置文件。SpringBoot默认只加载resource目录下的,application开头的文件。所以其他自定义的配置文件,需要额外手动进行加载。

@Configuration 配置类

在SpringBoot中,推荐使用配置类的方式,向容器中添加配置和组件。@Configuration注解,可以配置一个配置类,从而替换传统Srping的xml配置文件。使用@Bean 注解,将方法返回的对象注入到容器中。



获取配置文件中的属性进行注入

@ConfigurationProperties(prefix=“”)

按照属性前缀,进行属性注入,本质是调用Set方法,所以一定要先生成Set方法,才能注入。

@Value

  1. 可以直接在@Value(“1”)进行直接注入
  2. @Value(${属性key}) 读取配置文件的属性值,并且逐个注入到对应的属性中。
  3. 无需set方法



随机数参数以及参数引用

在SpringBoot配置文件中,设置属性值时,除了显示的直接配置确定的值,还可以配置随机值或者参数间的引用对属性值进行设置。

随机值设置

  1. SpringBoot中,随机值参数的生成,用到了SpringBoot内嵌的RandomValuePropertySource类,可以对一些隐秘属性值进行随机值注入。
  2. 随机值设置的语法格式为,${random.xx} ,xx标识要生成的随机数类型和范围。
my.secret=${random.value}     // 配置随机值
my.number=${random.int}      // 配置随机整数
my.bignumber=${random.long}   // 配置随机long类型数
my.uuid=${random.uuid}      // 配置随机uuid类型数
my.number.less.than.ten=${random.int(10)}  // 配置小于10的随机整数
my.number.in.range=${random.int[1024,65536]} // 配置范围在[1024,65536]之间的随机整数

参数间引用

  1. SpringBoot的配置文件中,可以在后面的配置属性中,引用之前的已经定义过的属性。这样在互相关联的属性中,只需要对一处进行预先配置即可。
  2. 参数建引用的格式为 ${xx} xx标识已经定义过的属性名。
# 随机值设置以及参数间引用配置
tom.age=${random.int[10,20]}
tom.description=tom的年龄可能是${tom.age}

你可能感兴趣的:(#,SpringBoot,spring,boot,java,spring)