zoukankan      html  css  js  c++  java
  • SpringBoot系列---【yml配置文件中的值如何注入到java配置类中?】

    1.第一种属性注入方式:@Value,注意这里的前提是,属性值写在application.yml中

    @Component //注册bean
    public class Dog {
        @Value("${name}") //配置文件中配置name=张三
      private String name;
      @Value(
    "3")
      private Integer age;
    //省略get,set
    }

    2.准备工作一个application.yml文件

    person:
      name: zhangsan
      age: 18
      happy: false
      birth: 2021/01/28
      maps: {k1: v1,k2: v2}
      lists:
       - code
       - girl
       - music
      dog:
        name: 笨笨
        age: 2

    3.第二种属性注入方式:@ConfigurationProperties(prefix=" "),单独使用,不用配合@Value。

    /*
    @ConfigurationProperties作用:
    将配置文件中配置的每一个属性的值,映射到这个组件中;
    告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
    参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
    */
    @Component //注册bean
    @ConfigurationProperties(prefix = "person")
    public class Person {
        private String name;
        private Integer age;
        private Boolean happy;
        private Date birth;
        private Map<String,Object> maps;
        private List<Object> lists;
        private Dog dog;
    }

    4.第三种属性注入方式:@PropertySource :加载指定的配置文件,通常配合@Value注解使用。

    @ConfigurationProperties:默认从全局配置文件中获取值;

    这里自己写一个person.yml,我这里省略了。

    示例1:

    @PropertySource(value = "classpath:person.yml")
    @Component //注册bean
    public class Person {
    
        @Value("${name}")
        private String name;
    
        ......  
    }

    示例2:

    这里自己写一个user.yml,我这里省略了。

    @Component //注册bean
    @PropertySource(value = "classpath:user.yml")
    public class User {
        //直接使用@value
        @Value("${user.name}") //从配置文件中取值
        private String name;
        @Value("#{9*2}")  // #{SPEL} Spring表达式
        private int age;
        @Value("男")  // 字面量
        private String sex;
    }
    愿你走出半生,归来仍是少年!
  • 相关阅读:
    Linux软件安装之JDK的安装
    VMWARE虚拟机安装系统提示CPU已被客户机操作系统禁用和secureCUT乱码
    联网配置及静态更改
    全文搜索技术--Solr7.1之配置中文分析器
    全文搜索技术--solr7.1之mysql的安装步骤
    建立主从的九大步及配置哨兵
    mysql 模糊匹配优化(全文索引)
    微服务架构的身份验证解决方案
    spring声明式事务回滚
    spring 通过@responsebody接收多个对象参数
  • 原文地址:https://www.cnblogs.com/hujunwei/p/14342515.html
Copyright © 2011-2022 走看看