SpringBoot-yaml数据绑定
数据格式
application.properties可以删除改为application.yaml
- application.properties
语法结构 :key = value
server.port = 8081
- application.yaml
key:空格 value
server.port : 8081
#普通key: vlaue
name : weiming
#对象,缩进代表层级
student:
name:weiming
age:19
#行内写法
stduent:{name:qingjiang,age:3}
#数组
pets:
-cat
-dog
-pig
pets:[cat,dog,pig]
数据属性绑定
创建完一个类后用@Component来导入组件
用@Value来给属性赋初值
也可以使用yaml来给属性附初始值
在pom.xml中加入dependency依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
#application.yaml
person:
name: weiming
age: 19
happy: true
map: {k:y,k1:y1}
list:
-1
-2
-3
//Person.java
@Component//用 @Component 把javabean 注入到容器中
@ConfigurationProperties(prefix = "person") //绑定yaml文件
public class Person {
//@Value("weiming")
private String name;
private Integer age;
private Boolean happy;
private Map<String,Object> map;
private List<Object> list;
get...set...toString方法
}
//ApplicationTests.java测试类
package com.class1;
import com.class1.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Class1ApplicationTests {
@Autowired
Person p1;
@Test
void contextLoads() {
System.out.println(p1);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PGnDj1gA-1583753472117)(C:\Users\zwm\AppData\Roaming\Typora\typora-user-images\image-20200309191931988.png)]
d contextLoads() {
System.out.println(p1);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200309193147351.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MjQxMjUy,size_16,color_FFFFFF,t_70)
绑定成功!