• 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);
        }
    
    }
    

    最后得出的结果就如下图

      

      

  • 相关阅读:
    BZOJ 1996: [Hnoi2010]chorus 合唱队
    BZOJ 2431: [HAOI2009]逆序对数列
    BZOJ1013: [JSOI2008]球形空间产生器sphere
    BZOJ 4196: [Noi2015]软件包管理器
    BZOJ 3670: [Noi2014]动物园
    NOIP 2017 提高组 day1t2 时间复杂度
    loj #6278. 数列分块入门 2
    CF285 E Positions in Permutations——“恰好->大于”的容斥和允许“随意放”的dp
    洛谷 1969 积木大赛——水题
    洛谷 1965 转圈游戏——水题
  • 原文地址:https://www.cnblogs.com/pcliu/p/11453767.html
Copyright © 2020-2023  润新知