Java如何从yml文件获取对象
目录
- 一、背景
- 二、application.yml
- 三、ChinaPersonFactory.java
- 四、使用示例
一、背景
在 SpringBoot 中,我们可以使用 @Value
注解从属性文件(例如 application.yml
或 application.properties
)中获取配置信息,但是只能获取简单的字符串或数值类型的配置信息。
如果想从 yml 中获取对象等复杂的数据类型,可以使用 @ConfigurationProperties
注解。
二、application.yml
首先,我们在 application.yml
文件中指定了 china
前缀后面的 persons
里面存放了带有 name、sex、age 属性的对象。
china:persons:- name: 张三sex: Fage: 24- name: 李四sex: Mage: 25
三、ChinaPersonFactory.java
ChinaPersonFactory.java
使用 @ConfigurationProperties
注解,指定 china
前缀,从 application.yml 文件中获取 china 前缀开头的 Person 对象数组。
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;import java.util.ArrayList;
import java.util.List;/*** <p> @Title ChinaPersons* <p> @Description 从 yml 中获取 Person 对象** @author ACGkaka* @date 2023/3/23 19:11*/
@Configuration
@ConfigurationProperties(prefix = "china")
public class ChinaPersonFactory {// 这里的名字要和yml中的对应字段名称一致private static List<Person> persons = new ArrayList<>();// 注意此处的 static 关键字public static List<Person> getPersons() {return persons;}public void setPersons(List<Person> persons) {ChinaPersons.persons = persons;}/*** 基础人员信息* 注意:该类要使用 static 关键字修饰,否则会报错。*/@Datapublic static class Person {// 姓名private String name;// 性别private String sex;// 年龄private Integer age;}
}
四、使用示例
做好以上准备工作后,我们可以在项目中通过调用如下代码获取配置中的对象数组:
List<Person> list = ChinaPersonFactory.getPersons()
整理完毕,完结撒花~ 🌻
参考地址:
1.Java获取yml文件的数组对象,https://blog.csdn.net/qq_41057885/article/details/121425355