Spring @Value批注

介绍:

Spring @Value批注用于将值注入变量和方法参数。 我们可以读取spring环境变量或系统变量。 它还支持SpEL。

在本快速教程中,我们将探讨如何使用Spring @Value批注。

设定:

让我们首先在app.properties文件中定义一些属性:

user.first.name=Sam
user.stocks=50
user.address=California
user.preferences=A,B,C
products.count={P1: '3', P2: '10', P3: '5'}

这些是本教程中用于示例的属性。

另外,让我们快速定义AppConfiguration类:

@Configuration
@PropertySource("classpath:app.properties")
public class AppConfiguration {...
}

Spring

我们可以使用@Value注释将默认值分配给类属性:

@Value("10")
private int value;@Value("Hello World")
private String msg;

请注意,它仅接受String参数,但是在值注入期间,传入的值将转换为适当的类型。

读取Spring环境变量:

我们可以使用@Value注释来读取Spring环境变量:

@Value("${user.first.name}")
private String userFirstName;

我们还可以阅读值列表:

@Value("${user.preferences}")
private String[] userPreferences;

现在,让我们尝试使用@Value注释读取值'products.count'的 映射

@Value("#{${products.count}}")
private Map<String, Integer> productsCount;

要从地图中获取特定键的值 ,我们将使用:

@Value("#{${products.count}.P1}")
private Integer p1Count;

读取系统变量:

使用Spring @Value ,我们还可以直接读取系统变量:

@Value("${java.home}")
private String javaHome;

或使用SpEL:

@Value("#{systemProperties['java.home']}")
private String javaHome;

分配默认值:

如果我们希望在缺少属性的情况下分配默认值怎么办? 是的,我们可以使用Spring @Value批注的默认构造来做到这一点:

@Value("${user.stocks:30}")
private int stockCount;

在此,仅当属性文件中缺少属性“ user.stocks”时 ,才会将默认值30分配给stockCount

使用SpEL时,我们还可以分配一个默认值:

@Value("#{systemProperties['abc'] ?: 'default value'}")
private String unknownSystemProperty;

在方法中注入值:

除了基于字段的注入外,我们还可以在方法上使用@Value注释:

@Value("${user.first.name}")
public void setUserName(String userName) {this.userName = userName;
}

如果我们在方法上使用@Value批注,则其所有参数都将映射到相同的值。

如果要向不同的参数注入不同的参数,则可以将@Value注释与方法参数一起使用:

public void setUserDetails(@Value("${user.first.name}")String userName,@Value("${user.address}") String address) {this.userName = userName;this.address = address;
}

结论:

在本教程中,我们探讨了使用@Value注释注入属性值的不同方法。 我们可以将@Value注释与字段或方法一起使用。

翻译自: https://www.javacodegeeks.com/2019/05/spring-value-annotation.html

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

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

相关文章

【渝粤教育】国家开放大学2018年春季 8663-21T老年保健按摩 参考试题

科目编号&#xff1a;8663 座位号 2017-2018学年度第二学期期末考试 老年保健按摩试题 2018年7月 一、名词解释&#xff08;本大题共5小题&#xff0c;每小题4分&#xff0c;共计20分&#xff09; 1.骨度分寸法&#xff1a; 2.三叉神经痛&#xff1a; 3.间接标志法&#xff…

各种工业以太网技术浅析

高性能、工厂设备和IT系统集成&#xff0c;以及工业物联网的需求驱动促进了工业以太网的增长。在实时工业以太网中&#xff0c;EPA、 EtherCAT、 RTEX、Ethernet Powerlink、PROFINET、Ethernet/IP、SERCOS III是主要的竞争者。下面对它们进行简单比较。 Ethernet/IP Etherne…

【渝粤教育】国家开放大学2018年秋季 0054-22T合同法 参考试题

试卷代号&#xff1a;0064 2018-2019学年第一学期期末考试 外国文学专题试题 2019年1月 一、填空题&#xff08;每空3分&#xff0c;共30分&#xff09; 1.多丽丝莱辛是一位杰出的女作家&#xff0c;她于60年代创作的长篇小说是 。 2.作家的 …

计算机基础知识表格加密管理,【事业单位考试】计算机网络知识:数据加密技术之密钥管理...

【导语】在事业单位考试中&#xff0c;计算机专业知识的复习向来是考生复习备考阶段的一大重点&#xff0c;其中中公为计算机网络知识的复习为考生提供知识点梳理&#xff0c;帮助考生备考!对于私用密钥加密和公开密钥加密系统来讲、并不强调对加密/解密算法的保密。计算机网络…

核心交换机相对于普通交换机的优势

核心交换机我们平时提的挺多&#xff0c;相比较普通交换机而言&#xff0c;核心交换机需要具备以下特质&#xff1a;大缓存、高容量、虚拟化、FCOE、二层TRILL技术等方面的特征。那么&#xff0c;核心交换机相对于普通交换机有哪些优势呢&#xff1f;接下来我们就跟随飞畅科技的…

NB-IOT和LoRa技术优劣对比

LPWAN(low-power Wide-Area Network&#xff0c;低功耗广域网)近年来快速兴起。NB-IoT与LoRa是其中的典型代表&#xff0c;也是最有发展前景的两个低功耗广域网通信技术。那么NB-IOT 和 LoRa物联网长距离低功耗无线技术哪个更好呢? NB-IoT技术具备四大优势&#xff1a; 一是覆…

【渝粤教育】国家开放大学2018年秋季 0222-22T模拟电子电路 参考试题

试卷编号&#xff1a;0242 座位号&#xff1a;   2017&#xff0d;2018学年第二学期期末考试   数控机床故障诊断与维修试题 2018年7月 一、选择题&#xff08;每小题3分&#xff0c;共30分&#xff09; &#xff08;★请考生务必将答案填入到下面对应序号的答题框中★&a…

物联网生态系统的安全与威胁

物联网正在催生一个全新的连网设备生态系统&#xff0c;这与我们过去习惯的系统集中架构完全不同。新的设备连网世界将会通过云和其他无线方式进行大量敏感数据的交换。尽管物联网对个人和企业都有巨大的好处&#xff0c;但它也带来了一大堆安全问题&#xff0c;人们不能对此视…

地理科学师范计算机,地理科学师范考研方向指导参考

地理科学师范考研方向指导参考考研已经在准备当中&#xff0c;我们要想走好考研的第一步&#xff0c;就必须要了解专业方向&#xff0c;选择好专业和院校。小编为大家精心准备了地理科学师范考研方向&#xff0c;欢迎大家前来阅读。全国研究生师范相关院校排名考研院校排名&…

[渝粤教育] 广东-国家-开放大学 10763k2_客户服务管理_21秋考试

1、国外的经验数据显示&#xff1a;发展一个新客户的成本是维持老客户的&#xff08; &#xff09; &#xff08;2 分&#xff09; A&#xff0e;1/2 B&#xff0e;2倍 C&#xff0e;3&#xff5e;5倍 D&#xff0e;一样多 2、作为企业而言&#xff0c;最想保持和发展的是&…

核心交换机与普通交换机的区别

交换机种类繁多&#xff0c;核心交换机并不是交换机的一种类型&#xff0c;而是放在核心层&#xff08;网络主干部分称&#xff09;的交换机叫核心交换机。那么&#xff0c;核心交换机和普通交换机之间有什么区别呢&#xff1f;接下来我们就跟随飞畅科技的小编一起来详细了解下…

javafx中的tree_JavaFX中的塔防(6)

javafx中的tree因此&#xff0c;我们已经在本教程的第6部分中&#xff0c;与此同时&#xff0c;游戏也取得了长足的进步。 在这一部分中&#xff0c;我们最终将添加一个显示得分的图层&#xff0c;已达到目标的敌人数量&#xff0c;启动下一个Wave的按钮以及用于购买新炮塔的资…

物联网技术应用在智慧医疗的应用案例

医疗卫生体系的发展水平关系到人民群众的身心健康和社会和谐&#xff0c;一直是社会关注的热点之一。智慧医疗旨在通过物联网技术实现准确、实时感知医疗信息&#xff0c;并进行全面、科学分析&#xff0c;作出智慧的决策&#xff0c;从而提升医疗服务的信息化水平&#xff0c;…

[渝粤教育] 广东-国家-开放大学 21秋期末考试个人与团队管理10257k2

1、关于培训,说法正确的是&#xff08;&#xff09;。&#xff08;2 分&#xff09; A&#xff0e;只有新员工需要培训 B&#xff0e;培训主要针对技能、思考能力和解决问题的方法等内容 C&#xff0e;培训属于发展活动 D&#xff0e;培训属于学习活动 2、与管理者相比&#xf…

html如何插入swf视频,Html插入SWF方法

1&#xff0c;方法一&#xff1a;classid"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#4,0,0,0">2&#xff0c;方法二&#xff1a;codebase"http://fpdownload.ma…

工业以太网交换机的三种转发方式

交换(switching)是按照通信两端传输信息的要求&#xff0c;用人工或设备自动完成的方法&#xff0c;把要传输的信息送到符合要求的相应路由上的技术的统称。根据工作位置的不同&#xff0c;可以分为广域网交换机和局域网交换机。广域网的交换机(switch)就是一种在通信系统中完成…

[渝粤教育] 广东-国家-开放大学 21秋期末考试中国近现代史纲要(A)10881k1

1、( )不是西方列强发动殖民扩张的目的。&#xff08;3 分&#xff09; A&#xff0e;实现更多的剥削、掠夺 B&#xff0e;获得经济上、政治上的附庸 C&#xff0e;传播资本主义文明 D&#xff0e;攫取巨额财富 2、帝国主义侵略中国的最终目的&#xff0c;是要&#xff08; &am…

Semtech的LoRa技术实现智能化工业应用管理

EasyReach公司基于LoRa的物联网解决方案将工业设备连接到云端. ​ 美国加利福尼亚州卡马里奥市&#xff0c;2018年12月 - 高性能模拟与混合信号半导体产品及先进算法领先供应商Semtech Corporation &#xff08;纳斯达克交易代码&#xff1a;SMTC&#xff09;日前宣布&#x…

Maven依赖范围

介绍&#xff1a; 管理依赖关系是Maven的核心功能。 在定义Maven依赖项时&#xff0c; scope属性定义了该依赖项在不同的Maven生命周期阶段&#xff08;例如build&#xff0c;test和run&#xff09;上的可见性。 依赖范围限制了任何项目中依赖的传递性&#xff0c;从而影响了类…

[渝粤教育] 广东-国家-开放大学 21秋期末考试人力资源管理(专)10083k2

单项选择题 1、薪酬对于员工的重要性主要体现不包括&#xff1f;&#xff08; &#xff09; A、调节功能B、保障功能C、激励功能D、信号功能&#xff08;2 分&#xff09; A&#xff0e;D B&#xff0e;B C&#xff0e;A D&#xff0e;C 2、员工由工作本身所获得的心理满足和心…