一、前言

1.SpringBoot舍弃了原始的XML文件配置方式,推荐使用ymlproperties文件作为配置文件
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默认扫描不到,除非做配置才可以。

java spring读取资源文件 spring 读取yml_java spring读取资源文件


(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文件,名字不能改

java spring读取资源文件 spring 读取yml_spring boot_02

每一个冒号后面都需要有一个空格,重点

# 给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)建一个测试类

java spring读取资源文件 spring 读取yml_配置文件_03


代码

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);
    }
}

启动看结果

java spring读取资源文件 spring 读取yml_java spring读取资源文件_04

(3)读取一个普通键值。
1)在application.yml文件里写值

beinuan-name: 北暖

java spring读取资源文件 spring 读取yml_spring_05


(2)获取数据

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

java spring读取资源文件 spring 读取yml_配置文件_06


看结果

java spring读取资源文件 spring 读取yml_配置文件_07


到此获取yml数据结束

1.一定要在javabean上写@Component注解 否则IOC容器里没有肯定取不到值,而且会抛异常

2.javabean一定要写get和set方法,否则获取不到值。

3,对于数组或集合还可以在一行行内写,但是习惯这样比较清晰。

写作不易,如果对您有所帮助,请给一个小小的赞,您的点赞是对我莫大的支持和鼓励,谢谢!!!