zoukankan      html  css  js  c++  java
  • 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);
        }
    
    }
    

    最后得出的结果就如下图

      

      

  • 相关阅读:
    GIT基本概念和用法总结
    SELECT联动
    PHP无级分类续及搜索功能,分组分页
    PHP管理员登陆、验证与添加(前端验证)
    PHP手写cms 缓存Cache
    将本地文件上传到Ftp上的一些操作【转】
    SQL对时间的处理
    SQL Server游标的使用【转】
    修改数据表字段长度
    Web.Config加密【转】
  • 原文地址:https://www.cnblogs.com/pcliu/p/11453767.html
Copyright © 2011-2022 走看看