SpringBoot的配置文件application.yml
一、配置文件
SpringBoot使用一个全局的配置文件,配置文件有2种:
1.application.properties
2.application.yml
配置文件放在src/main/resource目录下,如图所示。
二、YAML介绍
基本介绍:
.yml是YAML(YAML Ain't Markup Language)语言的文件,以数据为中心,比json、xml等更加适合做配置文件
YAML Ain't Markup Language 这是一个递归写法 ;
YAML A Markup Language:是一个标记语言
YAML isn't Markup Language:不是一个标记语言;
YAML语法:
1.YAML基本语法
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格键
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- 大小写敏感
2.YAML支持的三种数据结构
- 对象:键值对的集合
- 数组:一组按次序排列的值
- 字面量:单个的、不可再分的值
3.YAML的写法
-对象(Map)
对象的一组键值对,使用冒号分隔开。比如: username: tanglb
冒号后面用空格来分开键值对;
{k: v}是行内写法
k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式
friends:
name: wangxq
age: 20
行内写法:
friends: {name: wangxq,age: 20}
数组(List、Set):
用- 值表示数组中的一个元素 ,多个元素构成一个数组,[ ]为行内写法
- 数组,对象可以组合使用
friends: - name: wangxq age: 20 - name: tanglb age: 24
行内写法:
friends: [{name: wangxq,age: 20},{name: tanglb,age: 24}]
- 字面量
数字、字符串、布尔、日期
字符串
- 默认不使用引号
- 可以使用单引号或者双引号,单引号会转义特殊字符
- 字符串可以写成多行,第二行开始,必须有一个单空格缩进,换行符会被转义为空格
eg:
name: "tanglb \n wangxq"
#输出;tanglb 换行 wangxq
name: 'tanglb \n wangxq'
#输出;tanglb \n wangxq
三、YAML配置文件注入
配置文件:
person: lastName: jack age: 18 boss: false birth: 2021/9/18 maps: {k1: v1,k2: 12} lists: - tanglb - wangxq dog: name: 柯基 age: 2
javaBean:
1 package com.xihua.helloworld.bean; 2 import org.springframework.stereotype.Component; 3 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import java.util.Date; 5 import java.util.List; 6 import java.util.Map; 7 8 /** 9 * 将配置文件中配置的每一个属性的值,映射到这个组件中 10 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定; 11 * prefix = "person":配置文件中哪个下面的所有属性进行一一映射 12 * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能; 13 * @ConfigurationProperties(prefix = "person")默认从全局配置文件中获取值; 14 * 15 */ 16 @Component 17 @ConfigurationProperties(prefix = "person") 18 public class Person { 19 20 private String lastName; 21 22 private Integer age; 23 24 private Boolean boss; 25 26 private Date birth; 27 28 private Map<String,Object> maps; 29 30 private List<Object> lists; 31 32 private Dog dog; 33 }
我们可以在pom文件导入配置文件处理器依赖,以后编写配置就有提示了
<!‐‐导入配置文件处理器,配置文件进行绑定就会有提示‐‐> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐configuration‐processor</artifactId>
<optional>true</optional> </dependency >