springBoot 3 yml 配置文件学习

351 阅读1分钟

一 yaml 语法熟悉

#普通的key-value
name: xuxing

#对象
Stu:
    name: xuxing
    age: 88

#行内写法
Stu: {name: xuxing,age: 88}

#数组
pets:
    - cat
    - dog
    - pig
    
pets: [cat,dog,pig]    

注意,对空格要求很高。 强大,可以给实体类赋值。

二 通过yaml 给实体类赋值。

2.1 先实现一个不用yaml 配置的初始化属性。

package tech.xuxing.d4.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component

public class Dog {

    @Value("旺财")
    private String name;
    @Value("3")
    private Integer age;

    public Dog() {
    }

测试运行,则

package tech.xuxing.d4;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import tech.xuxing.d4.pojo.Dog;

@SpringBootTest
class D4ApplicationTests {

    @Autowired
    private Dog dog;

    @Test
    void contextLoads() {
        System.out.println(dog.toString());
    }
}

2.2 实现配置yml 初始化dog 属性。

dog:
  name: xxx
  age: 3

pogo dog 实体类

@ConfigurationProperties(prefix = "dog")

使用方法不变。

2.3 来处复杂点的。类型多一点

package tech.xuxing.d4.pojo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

    public Person() {
    }
    ...

写配置文件 。

person:
  name: xuxing
  age: 4
  happy: false
  birth: 2019/11/1
  maps: {k1: v1,k2: v2}
  lists:
    - code
    - music
    - run
  dog:
    name: 鱼丸
    age: 3

运行,看效果
image.png

三 其它特性。

3.1 松散

代码里 firstName 配置里 first-name

3.2 JSR 303数据校验

一 加依赖。

<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.16.Final</version>
</dependency>

二 配校验

@Validated
public class Person {

    @Email("邮箱格式不正确")
    private String name;

image.png