一、配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的:

application.properties

application.yml

配置文件的作用:修改SpringBoot自动配置的默认值,SpringBoot在底层都给我们自动配置好;

YAML配置例子:

server:

  port:8081

xml配置:

<server>

  <port> 8081</port>

</server>

 

2、YMAL语法

2.1、基本语法

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

以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的

server:
  port: 8081

属性和值都是大小写敏感;

2.2、值的写法

2.2.1、字面量:普通值(数字,字符串,布尔)

k:v ->字面直接来写;

备注:字符串默认不用加上单引号和双引号

""->双引号,会转义字符串里面的特殊字符,特殊字符会作为本身想表达的意思

''->单引号,不会转义特殊字符,特殊字符最终只是一个普通的字符串数据

例子:

test1: "aa \n ba"
test2: 'aa \n ba'

结果:

test1:aa 
 ba
test2:aa \n ba/

 

2.2.2、对象,Map

K: V ->对象还是K:V的方法

例子:

friends:
  lastName: zhangsan
  age: 20

行内写法:(注意:后面加空格)

friends: {lastName: zhangsan,age: 20}

2.2.3、数组(List,Set)

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

例子:注意空格

pets:
  - cat
  - dog
  - pig

行内写法:

pets: {cat,dog,pig}

2.3、配置文件值注入

2.3.1、例子:

YML配置:

person:
  lastName: zhangsan   //last-name也可以
  age: 18
  boos: false
  birth: 2020/6/18
  maps: {k1: v1,k2: v2}
  lists:
    - list
    - zhaoliu
  dog:
    name: xiaogou
    age: 2

properties配置:

person.lastName=zhangsan1
person.age=18
person.boos=true
person.birth=2020/6/18
person.maps.k1=k1
person.maps.k2=k2
person.lists={list,zhaoliu}
person.dog.name=xiaogou
person.dog.age=2

乱码解决:

spring boot学习笔记-第二章配置

java:

@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;

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

2.3.2、@Value和@ConfigurationProperties获取值比较

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: