SpringBoot读取yml文件数据

一、前言

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默认扫描不到,除非做配置才可以。
在这里插入图片描述
(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,对于数组或集合还可以在一行行内写,但是习惯这样比较清晰。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值