4.SpringBoot配置yaml数据格式&&获取方式

一、配置yaml数据格式

#对象:键值对的集合
person:
  name: zhangsan
  age: 20

#行内写法
person2: {name: zhangsan,age: 20}

#数组
address:
  - 北京
  - 上海

#行内写法
address2: [北京,上海]

#纯量:单个的,不可再分的
msg1: 'hello\n world'  #单引号忽略转义字符
msg2: "hello\n world"  #双引号识别转义字符

参数引用:

name: zhangsan

book:
  name: {name} #zhangsan

二、获取方式

1.获取方式一

读取配置文件-@Value

@RestController
public class TestController {

    @Value("${name}")
    private String name;

    @Value("${person.name}")
    private String name2;

    @Value("${person.age}")
    private int age;


    @Value("${address[0]}")
    private String address1;

    @Value("${msg1}")
    private String msg1;

    @Value("${msg2}")
    private String msg2;


    @RequestMapping("/test1")
    public String test1(){
        System.out.println(name);
        System.out.println(name2);
        System.out.println(age);
        System.out.println(address1);
        System.out.println(msg1);
        System.out.println(msg2);
        return "Hello~SpringBoot!!!";
    }

}

运行结果:

4.SpringBoot配置yaml数据格式&&获取方式_第1张图片

2.获取方式二

Environment获取属性值

Environment是用来读取应用程序运行时的环境变量的类,可以通过key-value的方式读取application.properties和系统环境变量,命令行输入参数,系统属性等

@RestController
public class TestController {

    @Autowired
    private Environment env;
    
    @RequestMapping("/test1")
    public String test1(){
        System.out.println(env.getProperty("person.name"));
        System.out.println(env.getProperty("address[0]"));
        System.out.println(env.getProperty("person.age"));
        return "Hello~SpringBoot!!!";
    }

}

运行结果:

4.SpringBoot配置yaml数据格式&&获取方式_第2张图片

3.获取方式三

读取配置文件属性- @ConfigurationProperties

使用@ConfigurationProperties首先建立配置文件与对象的映射关系,然后在控制器方法中使用@Autowired注解将对象注入。具体如下:

@Component//被spring所识别,是一个bean
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
@RestController
public class TestController {
    @Autowired
    private Person person;

    @RequestMapping("/test1")
    public String test1(){
        System.out.println(person);
        System.out.println(person.getName());
        return "Hello~SpringBoot!!!";
    }

}

运行结果:

4.SpringBoot配置yaml数据格式&&获取方式_第3张图片

以上就是Springboot的配置数据与获取数据的方式


 

你可能感兴趣的:(SpringBoot,spring,spring,boot,intellij-idea,java)