一、前言
1.SpringBoot舍弃了原始的XML文件配置方式,推荐使用yml
和properties
文件作为配置文件
2.properties文件在以往Spring框架中也已经使用过,所以本次就yml配置文件读取数据演示
3.源码Github地址 https://github.com/673161863-beinuan/springBoot-yml.git
二、yml文件支持值的数据类型
1.想要读取yml文件中数据,首要要搞清楚yml文件支持哪些值得数据类型。
(1)普通的字符串、数值、布尔类型
(2)数组
(3)引用对象
(4)时间类型
(5)集合
2.为访问测试,写一个javaBean对象。
(1)一定要在主启动类的包下建子包,否则springboot默认扫描不到,除非做配置才可以。
(2)代码
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
@Component //加入IOC容器
@ConfigurationProperties(prefix = "employee") //指定Employee在容器的前缀
public class Employee {
private Integer Id; // 员工id
private String name; // 员工姓名
private Boolean leader; // 是否为领导
private Date birthday; // 出声日期
private String[] roles; // 角色
private Map<String,String> salType; // 工资类型
private Dept dept; // 所在部门
// get set方法
// toString方法
// 我省略了,你千万别省略一定要写 要写 要写
}
public class Dept {
private Integer deptId; // 部门id
private String deptName; // 部门名称
// get set方法
// toString 方法
// 我省略了,你千万别省略,一定要写 要写 要写
}
添加一个依赖,这个依赖会帮助我们在配置文件里写代码时候会有提示。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
(3)在resource目录下建一个application.yml
文件,名字不能改
每一个冒号后面都需要有一个空格,重点
# 给Employee属性赋值
employee:
id: 2
name: 张三 # 普通字符串
leader: true # 布尔类型
birthday: 1998/01/01 #时间类型
roles: # 数组
- father
- empl
- son
salType: # map集合
base: 3000 # 基本工资
bonus: 8888 # 奖金
dept: # 引用对象
deptId: 1
deptName: 开发部
(4)建一个测试类
代码
import com.beinuan.spring.boot.bean.Employee;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class ApplicationBootstrap {
// 装配Employee
@Autowired
private Employee employee;
@Test
public void testReadData(){
System.out.println(employee);
}
}
启动看结果
(3)读取一个普通键值。
1)在application.yml
文件里写值
beinuan-name: 北暖
(2)获取数据
@Value("${beinuan-name}")
private String data;
看结果
到此获取yml数据结束
1.一定要在javabean上写@Component注解 否则IOC容器里没有肯定取不到值,而且会抛异常
2.javabean一定要写get和set
方法,否则获取不到值。
3,对于数组或集合还可以在一行行内写,但是习惯这样比较清晰。
写作不易,如果对您有所帮助,请给一个小小的赞,您的点赞是对我莫大的支持和鼓励,谢谢!!!