0


Java中解析yml或yaml配置文件

三种方式


编写yaml文件

# yml文件自定义配置information:name: 小明
  age:16tel:88888888888address: 北京市
  subject:- 数学
    - 英语
    - 语文
    - 物理
    - 化学

方式一:@Value注解(只注入单个元素)

实现步骤:

@SpringBootTestpublicclassResourcesTest{@Value("${information.name}")privateString name;@Value("${information.age}")privateInteger age;@Value("${information.tel}")privateString tel;@Value("${information.address}")privateString address;@Value("${information.subject[0]}")//只能注入单个属性privateString subject;@TestpublicvoidtestValue(){System.out.println("姓名:"+name);System.out.println("年龄:"+age);System.out.println("电话:"+tel);System.out.println("住址:"+address);System.out.println("学科:"+subject);}}

运行结果:
@Value注解实现运行结果


方式二:封装全部数据到Environment对象

实现步骤:

@SpringBootTestpublicclassResourcesTest{@AutowiredprivateEnvironment environment;//容器中已经加载了这个对象,并且封装了所有的属性@TestpublicvoidtestEnvironment(){String name = environment.getProperty("information.name");String age = environment.getProperty("information.age");String subject = environment.getProperty("information.subject[0]");System.out.println("姓名:"+name);System.out.println("年龄:"+age);System.out.println("学科:"+subject);}}

运行结果:
封装全部数据到Environment对象运行结果


方式三:自定义对象封装指定数据【常用】

可实现数组封装

实现步骤:
1、定义实体类用于封装数据

@Component//将对象添加Spring容器中,在类上添加@Component注解@ConfigurationProperties(prefix ="information")//在类上添加@ConfigurationProperties(prefix="指定前缀")@DatapublicclassInformation{privateString name;privateInteger age;privateString tel;privateString address;privateString[] subject;}

2、实现

@SpringBootTestpublicclassResourcesTest{@AutowiredprivateInformation information;@TestpublicvoidtestSelfdefining(){System.out.println(information);}}

运行结果:
自定义对象封装指定数据运行结果


拓展:自定义对象封装数据警告解决方案

在自定义对象使用
@ConfigurationProperties
注解会出现以下警告

Spring Boot Configuration Annotation Processor not configured

只需要在pom.xml添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

本文转载自: https://blog.csdn.net/weixin_44732769/article/details/127834917
版权归原作者 Cary.. 所有, 如有侵权,请联系我们删除。

“Java中解析yml或yaml配置文件”的评论:

还没有评论