SpringBoot的配置文件application.yml的一些常用语法

发布于:2024-04-23 ⋅ 阅读:(66) ⋅ 点赞:(0)

目录

 一、自定义配置数据

(1)配置简单数据

(2)配置对象数据

(3)配置集合数据

二、@Value读取配置文件

三、@ConfigurationProperties读取配置文件


配置文件的后缀可以是yaml或者yml,写法类似于键值形式

 一、自定义配置数据

这些数据都是自己自定义的,自己取名的

(1)配置简单数据

语法:
数据名:值

(注意冒号后面加空格)
举例:

email: ioio

(2)配置对象数据

对象:
   属性名1:值1
   属性名2:值2



举例:
 my:
  address: sd
  school: op

(3)配置集合数据

集合:
   -值1
   -值2

举例:

-后面要加空格
you:
  - beijing
  - anhui
  - tainjin
  
  
list1:
  - name: zhangsan
    age: 18
    sex: male
  - name: lisi
    age: 20
    sex: fmale
  - name: wangwu
    age: 19
    sex: male

二、@Value读取配置文件

@Value只能映射简单数据类型,不能将yml配置文件中的对象,集合映射到属性中去。

@Controller
public class controller {

    @Value("${my.school}")
    private String school;
    @Value("${you[1]}")
    private String ci;
    @Value("${list1[1].name}")
    private String list_name;
    @ResponseBody
    @RequestMapping("/c")
    public String v1(){
        System.out.print(school+" "+ci+" "+list_name);
        return "hello springt";
    }
}

yml配置文件


my:
  address: sd
  school: op

you:
  - beijing
  - anhui
  - tainjin


list1:
  - name: zhangsan
    age: 18
    sex: male
  - name: lisi
    age: 20
    sex: fmale
  - name: wangwu
    age: 19
    sex: male

三、@ConfigurationProperties读取配置文件

通过@ConfigurationProperties(prefifx="对象")可以将配置文件中的配置自动与实体映射,这样就可以将yml文件中配置的对象属性直接映射到Bean中。

说的简单点,比如配置文件写的如下:


user:
  username: lisi
  age: 88
  address:
    - beijing
    - anhui
    - tianjing
  grades:
    - subject: math
      score: 90
    - subject: english
      score: 88

@Controller
@ConfigurationProperties(prefix = "user")
public class MyController1 {
   private String username;
   private int age;
   private List<String> address;
   private  List<grade> grades;

   @ResponseBody
   @RequestMapping("/con")
   public String t1(){
       System.out.println(username);
       System.out.println(age);
       System.out.println(address);
       System.out.println(grades);
       return "sp";
   }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getAge() {
        return age;
    }

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

    public List<String> getAddress() {
        return address;
    }

    public void setAddress(List<String> address) {
        this.address = address;
    }

    public List<grade> getGrades() {
        return grades;
    }

    public void setGrades(List<grade> grades) {
        this.grades = grades;
    }
}