一、配置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!!!";
}
}
运行结果:
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!!!";
}
}
运行结果:
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!!!";
}
}
运行结果:
以上就是Springboot的配置数据与获取数据的方式