Episode2:SpringBoot相关配置

第二章、Spring Boot 配置文件

目录

  • 配置文件
  • YAML语法

1、配置文件

SpringBoot使用一个全局文件,文件名固定;

配置文件放在src/main/resources目录或者类路径/config

  • application.properties
  • application.yml

作用:修改SpringBoot自动配置默认值(在底层以自动配置好)

YAML(YAML Ain‘t Markup Language)

YAML A Markup Language:是一个标记语言

YAML isn‘t Markup Language:不是标记语言

标记语言

以前的配置文件,大多是XXXX.xml文件;

YAML:以数据为中心,比json、xml更适合做配置文件;

XML

1
2
3
<server>
<port>8080</port>
</server>

YAML

1
2
3
server.port=8080或
server:
port: 8080

2、YAML语法

2.1 基本语法

k:(空格)v:表示一对键值对(必须有空格)

以空格缩进来控制层级关系;左对齐即为同级

1
2
3
server:
port: 8080
path: /hello

属性值大小写敏感

2.2 值的写法

(1)字面量:普通的值(数字,字符串,布尔)

  • k: v:字面直接来写;字符串默认不加引号;

    • “”:双引号:特殊字符不转义,表达自身的意思,如换行

      name: “zhangsan \n lisi” 输出为 zhangsan (换行) lisi

    • ’‘:单引号:特殊字符转义,表示一个普通的字符数据

      name: ’zhangsan \n lisi‘ 输出为 zhangsan \n lisi

(2)对象(属性和值、键值对):

  • k: v:在下一行来写对象的属性和值的关系,注意缩进

    1
    2
    3
    friends:
    lastName: zhangsan
    age: 20
  • 行内写法

    1
    friends: {lastname: zhangsan,age: 20}

(3)数组(List、set)

  • 用 - 值表示数组中的一个元素

    1
    2
    3
    4
    pets:
    - cat
    - dog
    - pig
  • 行内写法

    1
    pets: [cat,dog,pig]

2.3 配置文件值注入

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
person:
lastname: zhangsan
age: 18
boss: false
birth: 2020/10/10
maps: {K1: v1,K2: 12}
lists:
- lisi
- wangwu
- zhaoliu
dog:
name: xiaogou
age: 2

javaBean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 将配置文件中配置的每一个属性的值都映射到组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
*
* 只有这个组件是容器中的,才能用这个功能
*/
//将本类所有的属性和配置文件相关配置绑定
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

private String lastname;
private Integer age;
private Boolean boss;
private Date birth;

private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;

我们可以导入配置文件处理器,以后编写配置就有提示

1
2
3
4
5
6
<!--导入配置文件处理器,配置文件绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>