yml示例数据如下

country: china
student:
  name: xuesheng01
  age: 20
user:
  -
   name: zhangsan
   age: 18
  -
   name: lisi
   age: 19

baseDir: c:\windows
tempDir: ${baseDir}\temp
#使用引号包裹 支持转义字符
tempDir2: "${baseDir}\temp"

读取方式

  1. 获取单数据中的单一数据
    @Value("${student.name}")
    private String name;
    @Value("${student.age}")
    private String age;
  1. 获取单数据中的数组单一数据
    @Value("${user[0].name}")
    private String name1;
    @Value("${user[1].name}")
    private String name1;

  1. 把所有数据封装到对象中
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
public class DemoController {
    @Autowired
    private Environment env;
    @GetMapping
    public String GetMessage(){

     System.out.println(env.getProperty("country"));
     System.out.println(env.getProperty("user.name"));
 }
}
  1. 指定对象封装到bean实例中

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

//1.定义数据模型,封装yml中对应的数据
//2.把他定义为Spring管理的bean
@Component
//3.制定加载的数据
@ConfigurationProperties(prefix = "student")
public class Student {
    private String name;
    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}