zoukankan      html  css  js  c++  java
  • SpringBoot之通过yaml绑定注入数据

    依赖包:

            <!--配置文件注解提示包-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>

    JavaBean:(此处使用lombok,可省略setter、getter等方法)

     1 package org.springboot.model;
     2 
     3 import lombok.Data;
     4 import org.springframework.beans.factory.annotation.Value;
     5 import org.springframework.boot.context.properties.ConfigurationProperties;
     6 import org.springframework.stereotype.Component;
     7 
     8 import java.util.Date;
     9 import java.util.Map;
    10 
    11 /**
    12  * @Description: 通过yaml绑定,注入数据的模型
    13  **/
    14 
    15 @Data
    16 @Component
    17 @ConfigurationProperties(prefix = "teather")
    18 public class Teather {
    19     @Value("小红") //单个赋值,优先级低
    20     private String name;
    21 //    @Value("${teather.age}")  // 使用SpringEl读取配置文件中的值并注入
    22     private String age;
    23     private Date birthday;
    24     private Boolean gender;
    25     private String[] hobbies; //集合处理方式和数组相同
    26     // {省:江苏,市:南京}
    27     private Map<String, Object> location;
    28 
    29 }

    application.yml

    #  通过yaml绑定,注入数据
    teather:
      name: Cate
      age: 29
      birthday: 1989/01/16
      gender: true
      hobbies: [唱歌,跳舞]
      location: {Province: "江苏",City: "南京"}

    已缩进来区分同级,并且冒号后必须有空格。 

    测试代码:

    package org.springboot;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springboot.model.Teather;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DemoApplicationTests {
        @Autowired
        Teather teather;
    
    
        //通过yaml绑定,注入数据
        @Test
        public void testTeather() {
            System.out.println(teather);
        }
    
    
    }

    执行结果

    Teather(name=Cate, age=29, birthday=Mon Jan 16 00:00:00 CST 1989, gender=true, hobbies=[唱歌, 跳舞], location={Province=江苏, City=南京})

    此处绑定注入类型分为批量注入和单个注入,批量注入的优先级较高,两种方式的比较如下图: 

  • 相关阅读:
    BZOJ_1095_[ZJOI2007]Hide 捉迷藏_动态点分治+堆
    BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性
    BZOJ_2208_[Jsoi2010]连通数_强连通分量+拓扑排序+手写bitset
    BZOJ_2438_[中山市选2011]杀人游戏 _强连通分量
    BZOJ_3545_[ONTAK2010]Peaks_主席树+倍增+kruscal重构树+dfs序
    BZOJ_1671_[Usaco2005 Dec]Knights of Ni 骑士_BFS
    BZOJ_3566_[SHOI2014]概率充电器_概率+树形DP
    自动驾驶课程学习
    java:String使用equals和==比较的区别
    为什么java的main方法必须是静态的
  • 原文地址:https://www.cnblogs.com/gongxr/p/10234817.html
Copyright © 2011-2022 走看看