Spring系列(九):Spring属性赋值注解@Value 用法介绍
今天给大家分享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 用法介绍相关推荐
- Spring初使用:使用Spring为对象的属性赋值
目录 为基本类型(及其包装类)属性赋值 通过xml配置文件的方式 使用Set方法赋值 使用有参构造方法赋值 通过注解的方式 使用 @Value 注解赋值 为引用类型属性赋值 指定赋值 使用Set方法赋 ...
- Spring框架—IOC容器—属性赋值的几种方式
目录 一.常用的赋值方式 1.1 set注入 1.1.1 ApplicationContext.xml配置文件 1.1.2 测试类: 1.1.2 控制台输出: 1.2 构造注入 1.2.1 修改Stu ...
- 机器学习、数据科学与金融行业 系列九:巴塞尔协议解读(1)介绍
机器学习.数据科学与金融行业 系列九:巴塞尔协议解读(1)介绍 本篇不同于本系列文章中的其他文章,本文只是笔者研读巴塞尔标准后所整理的其主要内容,侧重于计算RWA方面.现分享出来,请读者指正. ...
- JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍
JS拼接字符串的过程中将JSON对象存到某个标签的属性中 JS拼接字符串的过程中将JSON对象存到某个标签的属性中,encodeURIComponent(),btoa()用法介绍 案例描述 实现方法 ...
- Spring系列之Spring常用注解总结
参看博客:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺 ...
- 【Spring系列】 Spring注解方式实现IOC、DI及其Spring其他注解
文章目录 注解回顾 JDK内置注解 自定义注解 1.声明一个注解类,由`@interface`修饰 2.通过元注解修饰注解的定义 `@Target`:(常用) `@Retention`:(常用) `@ ...
- Spring系列之Spring常用注解总结 原文:https://www.cnblogs.com/xiaoxi/p/5935009.html
传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文 ...
- Spring系列之Spring框架和SpringAOP集成过程分析(十)
转载请注明出处:https://blog.csdn.net/zknxx/article/details/80724180 在开始这个系列之前大家先想一下我们是怎么在项目中使用SpringAOP的(这里 ...
- Spring系列 1.Spring概述及IOP
Spring概述 简介 Spring : 春天 ->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架. 2004年3月24日,Sp ...
最新文章
- 和12岁小同志搞创客开发:手撕代码,做一款密室自动门
- swift如何动态创建对象
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
- 原相机怎么拍出网图_专访5位时尚生活达人,他们都用哪款相机记录生活美好瞬间...
- 阿里云视频点播-视频上传失败(一直显示上传中)
- 前端学习(1924)vue之电商管理系统电商系统之权限的渲染方式
- 深度学习 --- 受限玻尔兹曼机RBM(MCMC接受率详解)
- JAX-RS (REST Web Services) 2.0 requires Java 1.7 o
- 服务器系统用哪个版本好,windows服务器系统哪个版本好用
- 电商直播还有什么新花样?
- (附源码)计算机毕业设计ssm大学生学科竞赛管理系统
- 腾讯推出移动端动画组件PAG,释放设计生产力!
- 距离2022年研究生考试还有多少天?倒计时天数用便签设置
- CnOpenData中国工业企业股东信息数据
- lae界面开发工具入门之介绍九--lua脚本组件篇
- PLX PCIe Switch使用
- ERP、MES(作用、功能、部署、相关模块)
- 马斯克要将特斯拉汽车送上火星,还要将《太空怪人》作为背景音乐
- 【C语言习题】统计君君提水的桶数(不使用ceil函数与floor函数)
- 【计算机组成原理】第2章 数据的表示和运算