Spring @Value获取数组、集合、map等不同结构方法

Spring 架构中,可以使用@Value注解从配置文件或命令行参数中获取集合数据。

各种示例

  • 获取基础类型

当没有配置时,可以设置默认值。无默认值时会抛出空值异常。 

    @Value("${lizz.timeout:3000}")private int timeout;@Value("${lizz.key:lizzkey}")private String key;
  • 获取列表数据
lizz.list=a,b,c
@Value("${lizz.list}")
private List<String> list;@Value("${lizz.list}")
private String[] arrStr;
  • 获取Map数据
lizz.map={"key1":"value1","key2":"value2"}
@Value("#{${lizz.map}}")
private Map<String, String> map;
  • 使用SpEL表达式
lizz.list2 = 1;2;3
    @Value("#{'${lizz.list2}'.split(';')}")private List<Integer> integerList;

验证

lizz.list1 = a,b,c
lizz.list2 = 1;2;3
lizz.map = {"key1":"value1","key2":"value2"}
@Component
public class MyApplication {@Value("${lizz.list1}")private String str;@Value("${lizz.list1}")private List<String> list1;@Value("${lizz.list1}")private String[] arrStr;@Value("#{${lizz.map}}")private Map<String, String> map1;/*获取lizz.list2,并对;号进行分隔生成list*/@Value("#{'${lizz.list2}'.split(';')}")private List<Integer> integerList;public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);System.out.println("str=" + str);System.out.println("list1=" + list1);System.out.println("arrStr=" + arrStr);System.out.println("map1=" + map1);System.out.println("integerList=" + integerList);}
}
str=a,b,c
list1=[a, b, c]
arrStr=[Ljava.lang.String;@79d3c655
map1={key1=value1, key2=value2}
integerList=[1, 2, 3]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python28-11 CatBoost梯度提升算法

CatBoost&#xff08;Categorical Boosting&#xff09;是由Yandex(一家俄罗斯互联网企业&#xff0c;旗下的搜索引擎曾在俄国内拥有逾60%的市场占有率&#xff0c;同时也提供其他互联网产品和服务)开发的一种基于梯度提升的机器学习算法。CatBoost特别擅长处理类别特征&#x…

什么是ThingsKit物联网平台?

在信息化时代的浪潮中&#xff0c;物联网&#xff08;IoT&#xff09;作为新一代信息技术的核心&#xff0c;已经逐渐渗透到我们生活的方方面面。而在这个大背景下&#xff0c;Thingskit物联网平台以其独特的技术优势和应用场景&#xff0c;成为了物联网领域的一颗璀璨明星。本…

AI和人工智能是啥关系?

AI&#xff08;人工智能&#xff09;与通用人工智能&#xff08;AGI&#xff09;是人工智能领域中的两个重要概念&#xff0c;它们在定义、技术基础以及应用领域等方面有所区别。人工智能&#xff08;AI&#xff09;&#xff0c;是指使计算机和其他机器模拟人类智能的技术&…

3.flink架构

目录 概述 概述 Flink是一个分布式的带有状态管理的计算框架&#xff0c;为了执行流应用程序&#xff0c;可以和 Hadoop YARN 、K8s 进行整合&#xff0c;当然也可以是一个 standalone 。 官方地址&#xff1a;速递 k8s 是未来的一种趋势&#xff0c;对资源管控能力强。

Windows 控制中心在哪里打开,七种方法教会你

在 Windows 操作系统中&#xff0c;控制中心的概念可能稍有些混淆&#xff0c;因为 Windows 通常使用“控制面板”这一术语来指代用于配置系统设置和更改硬件及软件设置的中心区域。 不过&#xff0c;随着 Windows 的更新&#xff0c;微软也在逐步将一些设置迁移到“设置”应用…

关于Linux的操作作业!24道题

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

js如何要让一个对象继承另一个对象的原型属性和方法

js如何要让一个对象继承另一个对象的原型属性和方法 1、使用 Object.create() const parent {greet: function() {console.log("Hello from parent!");} };const child Object.create(parent); child.greet(); // 输出: Hello from parent!2、使用 proto 属性 …

【算法】贪婪算法介绍及实现方法

贪婪算法简介 贪婪算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法。贪婪算法通常用于解决优化问题&#xff0c;如最小化成本、最大…

Tomcat打破双亲委派模型的方式

文章目录 1、前言2、标准的双亲委派模型3、Tomcat的类加载器架构4、Tomcat打破双亲委派模型的方式5、总结 1、前言 双亲委派模型是一种类加载机制&#xff0c;它确保了类加载器层次结构中的父加载器先于子加载器尝试加载类。这种机制有助于防止类的重复加载和类之间的不兼容。…

MySQL数据库基本操作-DDL和DML

1. DDL解释 DDL(Data Definition Language)&#xff0c;数据定义语言&#xff0c;该语言部分包括以下内容&#xff1a; 对数据库的常用操作对表结构的常用操作修改表结构 2. 对数据库的常用操作 功能SQL查看所有的数据库show databases&#xff1b;查看有印象的数据库show d…

16 - Python语言进阶

Python语言进阶 数据结构和算法 算法&#xff1a;解决问题的方法和步骤 评价算法的好坏&#xff1a;渐近时间复杂度和渐近空间复杂度。 渐近时间复杂度的大O标记&#xff1a; - 常量时间复杂度 - 布隆过滤器 / 哈希存储 - 对数时间复杂度 - 折半查找&#xff08;二分查找&am…

关于TCP的三次握手流程

三次握手流程 第一次握手&#xff1a;客户端向服务端发起建立连接请求&#xff0c;客户端会随机生成一个起始序列号x&#xff0c;客户端向服务端发送的字段包含标志位SYN1&#xff0c;序列号segx。第一次握手后客户端的状态为SYN-SENT。此时服务端的状态为LISTEN 第二次握手&…

使用耳机壳UV树脂制作私模定制耳塞的价格如何呢?

使用耳机壳UV树脂制作私模定制耳塞的价格如何呢&#xff1f; 耳机壳UV树脂制作私模定制耳塞的价格因多个因素而异&#xff0c;如材料、工艺、设计、定制复杂度等。 根据我目前所了解到的信息&#xff0c;使用UV树脂制作私模定制耳塞的价格可能在数百元至数千元不等。具体价格…

LVS+Nginx高可用集群---Nginx进阶与实战

1.Nginx中解决跨域问题 两个站点的域名不一样&#xff0c;就会有一个跨域问题。 跨域问题&#xff1a;了解同源策略&#xff1a;协议&#xff0c;域名&#xff0c;端口号都相同&#xff0c;只要有一个不相同那么就是非同源。 CORS全称Cross-Origin Resource Sharing&#xff…

大模型知识大全1-基础知识【大模型】

文章目录 大模型简介以后的介绍流程基础知识训练流程介绍pre-train对齐和指令微调规模拓展涌现能力 系统学习大模型的记录https://github.com/LLMBook-zh/LLMBook-zh.github.io 大模型简介 历史我就不写了&#xff0c;简单说说大模型的应用和特点。人类使用大模型其实分为两个…

linux高级编程(OSI/UDP(用户数据报))

OSI七层模型&#xff1a; OSI 模型 --> 开放系统互联模型 --> 分为7层&#xff1a; 理想模型 --> 尚未实现 1.应用层 QQ 应用程序的接口 2.表示层 加密解密 gzip 将接收的数据进行解释&#xff…

【shell】—双引号引用变量

文章目录 一、举例—单、双引号引用变量的结果差异二、使用双引号引用变量的场景1、使用双引号—可以防止字符串被分割2、使用双引号—特殊字符变为普通字符3、使用双引号—保存原始命令的输出格式4、使用双引号—具有强约束的单引号变为普通单引号字符5、注意 一、举例—单、双…

挑战杯 opencv python 深度学习垃圾图像分类系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; opencv python 深度学习垃圾分类系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这是一个较为新颖的竞…

昇思25天学习打卡营第13天|应用实践之ResNet50迁移学习

基本介绍 今日的应用实践的模型是计算机实践领域中十分出名的模型----ResNet模型。ResNet是一种残差网络结构&#xff0c;它通过引入“残差学习”的概念来解决随着网络深度增加时训练困难的问题&#xff0c;从而能够训练更深的网络结构。现很多网络极深的模型或多或少都受此影响…