• 总结:Spring Boot之@Value


    一、介绍

    我们可以通过@Value将外部的值动态注入到Bean中。

    二、普通字符串注入

    例:yml中存在key:name: zs

    @Value注入

    1. @Value("${name}")
    2. public String name;

    当yml中的name没有对应值时,即yml中为:name:

    此时字符串name的值为""

    可设置注入属性的默认值(当配置文件中没有此key时,此默认值生效),语法:

    1. @Value("${name:zch}")
    2. public String name;// 此时,若配置文件中没有name这个key,变量name的值为zch

    三、常用的int、boolean类型

    例:yml中存在key:

    1. port: 8888
    2. flag: true

    @Value注入

    1. @Value("${port}")
    2. public int port;
    3. @Value("${flag}")
    4. public boolean flag;

    三、数组类型注入

    例:yml中存在key:id: 1,2,3

    @Value注入:

    1. @Value("${id}")
    2. public int[] idArray;

    四、list类型

    例:yml中存在key:id: 1,2,3

    @Value注入:

    1. @Value("#{'${id}'.split(',')}")
    2. public List<String> idList;

    五、map类型

    例:yml中存在key:

    user: "{name: 'zs',age: '23'}" #注意此值用双引号包裹

    @Value注入

    1. @Value("#{${user}}")
    2. public Map<String,String> userInfo;

    当yml中user没有对应值是,启动报错

    六、操作系统相关

    1. @Value("#{systemProperties['os.name']}")
    2. private String systemPropertiesName; // 注入操作系统属性

    七、其它bean属性

       

    1. @Value("#{beanInject.another}")
    2. private String fromAnotherBean; // 注入其他Bean属性:注入beanInject对象的属性another,类具体定义见下面

    八、文件资源注入

    1. @Value("classpath:data/service/sbusiness.json")
    2. private Resource sbusinessJson;
    3. @Value("classpath:data/service/sbusinessDesc.txt")
    4. private Resource sbusinessDesc;
    5. @Value("classpath:data/service/alarmDesc.txt")
    6. private Resource alarmDesc;


     

  • 相关阅读:
    数据库基础
    vue-cli解决IE浏览器chunk-vendors.js 提示sockjs-client错误
    2022 年杭电多校第十场补题记录
    工业互联网企业身份与访问控制课题研究与探索
    关于linux的图形界面
    Illustrator 2024 mac/win版:创新设计,一触即发
    Java 连接linu 执行指令
    golang生成根证书,服务端证书,用于 tls
    MYSQL 使用基础 - 这么用就对了
    动态规划算法(3)(不同方案数问题+拆分问题)
  • 原文地址:https://blog.csdn.net/w2009211777/article/details/126141083