首页 > 其他分享 >Springboot中@Value的使用详解

Springboot中@Value的使用详解

时间:2022-10-25 17:01:58浏览次数:85  
标签:Springboot Value public 详解 key id yml name

Springboot中@Value的使用详解

Springboot通过@Value注解将配置文件中的属性注入到容器内组件中(可用在@Controller、@Service、@Configuration、@Component等Spring托管的类中) 

1.普通字符串注入

例:yml中存在key:

name: zs

@Value注入

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

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

name:

此时字符串name的值为""

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

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

2.常用的int、boolean类型

例:

yml中存在key:

port: 8888

flag: true

@Value注入

@Value("${port}") public int port; @Value("${flag}"
public boolean flag;  

3.数组类型

例:yml中存在key:

id: 1,2,3

@Value注入

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

当yml中id没有对应值时,数组idArray为非null空数组,长度为0

4.list类型

例:

yml中存在key:

id: 1,2,3

@Value注入

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

当yml中id没有对应值时,集合idList长度为1,存在值""  (原本以为是空集合,造成bug,特记录)

5.map类型

例:

yml中存在key:

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

@Value注入

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

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

#{}表示使用SpEL表达式。

标签:Springboot,Value,public,详解,key,id,yml,name
From: https://www.cnblogs.com/lizm166/p/16825463.html

相关文章

  • SpringBoot2配置HikariCP连接池的密码保护
    本文讨论如何保护SpringBoot配置文件中的数据库连接信息,一般情况下application.properties里会如下配置DataSource:spring.datasource.driver-class-name=com.mysql.cj.jdbc.......
  • SpringBoot2配置HikariCP连接池的密码保护
    本文讨论如何保护SpringBoot配置文件中的数据库连接信息,一般情况下application.properties里会如下配置DataSource:1spring.datasource.driver-class-name=com.mysql.cj.......
  • CF1743B Permutation Value
    题链:cfluogu构造。Description构造一个\(1\simn\)的排列,使之连续子串构成\(1\simk\)排列的数目最少。Analysis显然,最小数目可以为\(2\)。因为可以构造所示......
  • SpringBoot使用WebUploader做大文件的分块和断点续传
    ​ 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。先说下要求:PC端全平台支持,要求支持Windows,Mac,Linux......
  • PostgreSQL 数组类型使用详解
    PostgreSQL数组类型使用详解PostgreSQL数组类型使用详解可能大家对PostgreSQL这个关系型数据库不太熟悉,因为大部分人最熟悉的,公司用的最多的是MySQL我们先对Postgr......
  • SpringBoot 配置内部tomcat https双向验证
    1.在application.properties或者application.yml配置文件中加入server:port:8443ssl:key-store:classpath:xxxx.jks#xxxx.jks的别名key-ali......
  • 数据结构:线段树基础详解
    1.简介线段树,顾名思义,就是由线段构成的树,是一个较为优秀的数据结构,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点,通常用于解决区间类的问题,在各大......
  • WLAN 帧详解
    帧格式如上是一个80211的帧格式,传输顺序是从左向右发送,也就是是说最高bit将会最后出现FrameControlFrameControl如下图所示FrameControl的第一个字段是Protocal目前......
  • Flask学习笔记(十五)-Flask 上下文详解
    一、上下文说明上下文:在程序中可以理解为在代码执行到某一时刻时,根据之前代码所做的操作以及下文即将要执行的逻辑,可以决定在当前时刻下可以使用到的变量,或者可以完成的事......
  • Springboot 一行代码实现文件上传 20个平台!少写代码到极致
    大家好,我是小富~技术交流,公众号:程序员小富又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴......