SpringBoot-获取YAML文件值

首先我们需要创建一个SpringBoot项目,在这个项目里面我们可以创建2个pojo类

第一个Person.class

@Component
@ConfigurationProperties(prefix = "person")
@Data
public class Person {

    // 基本语法
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birthday;

    // 集合形式
    private Map<String, Object> maps;
    private List<Object> lists;

    // 对象形式
    private Dog dog;

}

  以上使用了lombok的依赖,所以直接使用@Data就可以覆盖这个pojo类的setter  getter 和 toString方法

  lombok的依赖如下

<dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <version>1.18.6</version>
</dependency>

  由于上面的Person类里面又关联了Dog类,所以添加下面的Dog.class

@Data
public class Dog {

    private String name;

    private Integer age;

}

  接下来我们就要配置application.yaml文件里面的内容了,与Person类的字段要一一对应

application.yaml

person:
  lastName: "张三"
  age: 18
  boss: false
  birthday: 2018/01/25

  # 行内式
  maps: {key1: value1, key2: value2}
  lists:
    - lisi
    - pcliu
    - tom

  dog:
    name: 小狗
    age: 2

  书写好以上的信息以后就要思考如何将配置文件中配置的每一个属性的值,映射到这个组件中?

    主要使用Person类当中的@ConfigurationProperties这个注解:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;

    它当中的默认参数prefix = "person":配置文件中哪个下面的所有属性进行一一映射

    最后使用@Component这个注解:只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能

注意还要在pom.xml文件里导入以下的依赖:导入配置文件处理器,配置文件进行绑定就会有提示

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

最后我们就可以在测试类里面进行打印yaml文件里面的值 

@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot01YamlApplicationTests {

    @Autowired
    private Person person;

    @Test
    public void contextLoads() {
        System.out.println(person);
    }

}

最后得出的结果就如下图

  

  

 

转载于:https://www.cnblogs.com/pcliu/p/11453767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值