[SpringBoot] yaml 的数据读取方式

本文介绍了YAML作为一种数据序列化语言在软件开发中的应用,涉及配置文件的编写、控制类中使用@Value和@Autowired处理单个数据和数组,以及通过定义实体类和@ConfigurationProperties进行自动装配的三种方法。
摘要由CSDN通过智能技术生成

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言,通常用于配置文件。它经常被用于软件开发中,用于定义数据结构和配置设置。

1.配置yaml文件

先在配置文件中定义一些数据,根据 yaml 的格式,每个数据前一定要带一个空格,分别定义了 book 的 id ,name ,people 。其中 people 是一个数组

2.定义控制类

定义一个控制类,用于发送请求路径

3.yaml 的数据读取

3.1 单个数据读取

在控制类中,定义一个变量,然后用@Value 标签,对变量进行赋值。如果是数组,需要取数组的下标

3.2 定义自动装配变量

在控制类中,一定要定义这个接口,而不是类

定义完接口后,用@Autowired 标签,将整个 yaml 配置文件赋值给 environment 。

然后用 environment 对象调用 getProperty( ) 方法,获取配置文件的属性

属性值就用匹配的形式与配置文件对应就行

3.3 定义实体类

这个方法是最常用,也是最方便的方法

定义一个实体类,里面的属性就对照配置文件中的属性

还要生成属性的 get() , set() 方法。

把该类作为Bean 对象管理到容器中。

@ConfigurationProperties("book")

用该标签定义实体类中的属性所对照的配置文件中的属性

然后在控制类中,自动装配所定义的实体类

然后输出

4.三种方法对比

打印

Spring Boot项目中,可以通过在`application.properties`或`application.yml`配置文件中定义配置属性,然后在项目启动时使用`@Value`注解注入属性值来读取配置文件数据。 以`application.properties`为例,首先在`src/main/resources`目录下创建该文件,并定义需要读取的配置属性,例如: ```properties # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=password ``` 然后在需要使用该配置属性的类中使用`@Value`注解注入属性值,例如: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class DatabaseConfig { @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; // getters and setters } ``` 在上面的代码中,通过在`@Value`注解中使用`${}`来引用配置属性,然后将属性值注入到对应的变量中。 需要注意的是,使用`@Value`注解注入属性值的类必须是Spring Bean,因此需要在类上添加`@Component`注解或其它符合条件的注解,以便Spring能够扫描并创建该类的实例。同时,需要在Spring Boot应用程序的入口类上添加`@EnableConfigurationProperties`注解,以启用注入属性值的功能。 另外,如果需要读取`application.yml`配置文件中的属性值,可以使用类似的方式,并在`@Value`注解中使用`:`来引用属性,例如: ```yaml # 数据库连接配置 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: password ``` ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class DatabaseConfig { @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; // getters and setters } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

托马斯家的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值