今天给大家分享Spring属性赋值注解@Value 用法,希望对大家能有所帮助!

1、@Value注解的作用

@Value注解的作用主要可以给属性直接赋值、也可以读取配置文件中的值给属性赋值

2、@Value 注解的写法

  • 基本数据类型赋值:@Value("三国演义")

  • 使用${} ,可以读取保配置文件的值(前提是配置文件保存的环境变量当中)

  • 也可以使用spring表达式 #{} 做些简单的运算然后赋值,比如 @Value(100-1)

3、用法示例

3.1 resources 目录新增 book.properties 配置文件

book.bookName=水浒传
book.price=80.00
book.bookType=四大名著

3.2  新增实体 Book.java

package com.spring.bean;import org.springframework.beans.factory.annotation.Value;public class Book  {// 基本数据类型赋值@Value("三国演义")private String bookName;// 使用${} ,可以读取保配置文件的值(前提是配置文件保存的环境变量当中)@Value("${book.bookType}")private String bookType;// 也可以使用spring表达式 #{} 做些简单的运算然后赋值,比如 100-50 得到的值为50@Value("#{100-10.15}")private double price;public Book() {}public Book(String bookName, String bookType, double price) {this.bookName = bookName;this.bookType = bookType;this.price = price;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getBookType() {return bookType;}public void setBookType(String bookType) {this.bookType = bookType;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Book{" +"bookName='" + bookName + '\'' +", bookType='" + bookType + '\'' +", price=" + price +'}';}}

3.3 新增 TestValueConfig.java

package com.spring.config;import com.spring.bean.Book;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
//使用 @PropertySource 注解可以加载外部的配置文件,将外部配置文件中的key/value值保存到运行的环境变量当中去
@PropertySource(value = {"classpath:/book.properties"})
@Configuration
public class TestValueConfig {@Beanpublic Book book() {return new Book();}
}

3.4 新增 TestValue.java 测试文件

package com.spring.test;import com.spring.config.TestValueConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;public class TestValue {public static void main(String[] args) {AnnotationConfigApplicationContext annotationContext = new AnnotationConfigApplicationContext(TestValueConfig.class);Object book = annotationContext.getBean("book");System.out.println(book);//通过环境变量直接读取配置文件里面的值ConfigurableEnvironment environment = annotationContext.getEnvironment();System.out.println(environment.getProperty("book.bookName"));}
}

输出结果:

Book{bookName='三国演义', bookType='四大名著', price=89.85}

水浒传

4、使用场景

  • 直接对属性进行赋值;比如字符串、数值、文件内容等。

  • 配置文件中读取简单类型进行赋值;配置文件需要保存到环境变量当中才有效。

  • 配置文件中读取复杂数据类型进行赋值;比如数组、Map、对象列表。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

Spring系列(九):Spring属性赋值注解@Value 用法介绍相关推荐

  1. Spring初使用:使用Spring为对象的属性赋值

    目录 为基本类型(及其包装类)属性赋值 通过xml配置文件的方式 使用Set方法赋值 使用有参构造方法赋值 通过注解的方式 使用 @Value 注解赋值 为引用类型属性赋值 指定赋值 使用Set方法赋 ...

  2. Spring框架—IOC容器—属性赋值的几种方式

    目录 一.常用的赋值方式 1.1 set注入 1.1.1 ApplicationContext.xml配置文件 1.1.2 测试类: 1.1.2 控制台输出: 1.2 构造注入 1.2.1 修改Stu ...

  3. 机器学习、数据科学与金融行业 系列九:巴塞尔协议解读(1)介绍

    机器学习.数据科学与金融行业 系列九:巴塞尔协议解读(1)介绍 本篇不同于本系列文章中的其他文章,本文只是笔者研读巴塞尔标准后所整理的其主要内容,侧重于计算RWA方面.现分享出来,请读者指正.     ...

  4. JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍

    JS拼接字符串的过程中将JSON对象存到某个标签的属性中 JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍 案例描述 实现方法 ...

  5. Spring系列之Spring常用注解总结

    参看博客:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺 ...

  6. 【Spring系列】 Spring注解方式实现IOC、DI及其Spring其他注解

    文章目录 注解回顾 JDK内置注解 自定义注解 1.声明一个注解类,由`@interface`修饰 2.通过元注解修饰注解的定义 `@Target`:(常用) `@Retention`:(常用) `@ ...

  7. Spring系列之Spring常用注解总结 原文:https://www.cnblogs.com/xiaoxi/p/5935009.html

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文 ...

  8. Spring系列之Spring框架和SpringAOP集成过程分析(十)

    转载请注明出处:https://blog.csdn.net/zknxx/article/details/80724180 在开始这个系列之前大家先想一下我们是怎么在项目中使用SpringAOP的(这里 ...

  9. Spring系列 1.Spring概述及IOP

    Spring概述 简介 Spring : 春天 ->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架. 2004年3月24日,Sp ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款密室自动门
  2. swift如何动态创建对象
  3. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
  4. 原相机怎么拍出网图_专访5位时尚生活达人,他们都用哪款相机记录生活美好瞬间...
  5. 阿里云视频点播-视频上传失败(一直显示上传中)
  6. 前端学习(1924)vue之电商管理系统电商系统之权限的渲染方式
  7. 深度学习 --- 受限玻尔兹曼机RBM(MCMC接受率详解)
  8. JAX-RS (REST Web Services) 2.0 requires Java 1.7 o
  9. 服务器系统用哪个版本好,windows服务器系统哪个版本好用
  10. 电商直播还有什么新花样?
  11. (附源码)计算机毕业设计ssm大学生学科竞赛管理系统
  12. 腾讯推出移动端动画组件PAG,释放设计生产力!
  13. 距离2022年研究生考试还有多少天?倒计时天数用便签设置
  14. CnOpenData中国工业企业股东信息数据
  15. lae界面开发工具入门之介绍九--lua脚本组件篇
  16. PLX PCIe Switch使用
  17. ERP、MES(作用、功能、部署、相关模块)
  18. 马斯克要将特斯拉汽车送上火星,还要将《太空怪人》作为背景音乐
  19. 【C语言习题】统计君君提水的桶数(不使用ceil函数与floor函数)
  20. 【计算机组成原理】第2章 数据的表示和运算

热门文章

  1. SoftReference和WeakReference
  2. 数字阅读体验的平台距离我们还有多远?
  3. linux下socket连接下的心跳机制
  4. 嵌入式根文件系统制作
  5. DM365 使用BT656协议驱动LCD的实现
  6. Pytorch基础(三)—— DataSet的应用
  7. 查询工资最低的3名员工的职工工号、姓名和收入_关于工资条,这6个常识必须掌握,事关你的权益!...
  8. iframe父子页面间的关系
  9. xxx.jar 中没有主清单属性
  10. 《JavaScript设计模式与开发实践》——第3章 闭包和高阶函数