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

目录

1、@Value注解的作用

2、@Value 注解的写法

3、用法示例

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

3.2  新增实体 Book.java

3.3 新增 TestValueConfig.java

3.4 新增 TestValue.java 测试文件

4、使用场景


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

       6164bedb333856ae45d5eb3a6356a6c6.png        

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、对象列表。

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

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

相关文章

Linux:9个实用shell运维脚本

目录 1、Dos攻击防范(自动屏蔽攻击IP) 2、Linux系统发送告警脚本 3、MySQL数据库备份单循环 4、MySQL数据库备份多循环 5、Nginx访问访问日志按天切割 6、Nginx访问日志分析脚本 7、查看网卡实时流量脚本 8、服务器系统配置初始化脚本 9、监控100台服务器…

Spring系列(十):@Autowired 和@Resource注解用法介绍

目录 一、Autowired 注解 1.1 介绍 1.2 作用 二、Resource 注解 2.1 介绍 2.2 Resource 自动注入顺序 三、Autowired 和 Resource区别 3.1 相同点: 3.2 不同点: 今天给大家分享Spring属性注入的注解Autowired 和Resource介,希望对大家能有所帮…

电脑软件:5个实用的Windows软件,大幅度提高你的工作效率

目录 软件一:投屏宝 软件二:Everything 软件三:uTools 软件四:Quicklook 软件五:CCleaner 今天小编给大家大家推荐这5款Windows必装的效率软件,实用又免费,可以大幅度提高你的工作效率。 软件一…

电脑软件:推荐八款提高工作效率的软件

目录 1、火绒杀毒软件 2、 Everything搜索神器 3、Bandizip压缩神器 ​​​​​​​4、Chrome浏览器 or 火狐 5、Snipaste 截图神器 6、geek卸载神器 7、vscode 代码编辑神器 8、Typora 今天小编给大家推荐八款提高工作效率的软件,欢迎下载试一试! 1、火…

centos7 安装 python3.5

centos7 安装 python3.5 一、 python虚拟环境virtualenv VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。 Virtualenv是一个非常好的virtual python environment builder,他最大的好处…

手机知识:90Hz或120Hz屏幕刷新率有啥区别

目录 1、屏幕刷新率概念介绍 2、显示器的工作原理 3、60Hz,90Hz和120Hz有什么区别? 4、高屏幕刷新率的缺点 5、你是否需要90Hz或120Hz的刷新率 今天小编给大家介绍手机90Hz或120Hz屏幕刷新率有啥区别,看完你就懂了! 1、屏幕刷新率…

电脑技巧:如何更改Win10桌面文件路径,轻松给系统盘瘦身

大家平常为了方便经常会在桌面上保存各种各样的文件,有些桌面文件可能会比较大从而占用C盘的磁盘空间,而系统盘我们在分配的时候,一般只有60-100G左右,时间长了我们的系统盘就会出现磁盘容量不足的情况,其实我们可以将…

MAC下快速打开指定目录

1.通过快捷键搜索 command 空格,输入关键词 2.通过控制台打开 1) 跳转到指定路径 cd /usr 2) 当前路径下打开文件夹 open .

Spring系列(十一):@Profile 注解用法介绍

目录 一、Profile 注解的作用 二、Profile 指定环境的方式 2.1 JVM启动参数 2.2 通过代码方式控制: 三、Profile 实现切换数据源示例 3.1 导入依赖 3.2 新建数据源配置文件dataSource.properties 3.3 新建TestProfileConfig.java 配置类 3.4 新建测试类TestProfile.…

传递参数的2种情况的理解。

最近差不多一个月没写博客了,主要的原因是目前在使用 Markdown 写学到的一些心得,一方面方便记笔记,另一方面页面排版更加的美观。 个人笔记站点 : https://yewenxiang23.github.io 碰到的问题: 今天碰到一个关于传递参数的问题&a…

电脑技巧:电脑卡顿的4个优化小技巧,太有用了

目录 一、调整电脑处理器性能 二、关闭系统自动更新 三、设置“处理器”个数 四、开机加速 电脑经常卡顿,就会严重影响了大家的工作效率,其实你的电脑可以开启“加速”优化设置来提升电脑的性能,今天小编就来给大家分享四个能减少电脑卡顿的实…

电脑技巧:微软电脑管家测试版发布,赶快来体验一下

目录 1、前言 2、官网地址 3、安装界面 4、运行主界面 5、功能介绍 5.1电脑体验 5.2 病毒查杀 5.3 垃圾清理 5.4 优化加速 6、总结 1、前言 2022年1月底,有开发者在网上放出了微软电脑管家V1.0的内测安装包,宣称是微软中国的团队自主研发的针对Winows操作…

Spring系列(十二):AOP相关知识笔记

目录 1、AOP定义 2、AOP的用途 3、AOP常用的注解 4、AOP实现Web统一日志Demo 4.1 新建IErrorCode.java 接口类 4.2 新建ResultCode.java 接口类 4.3 新建WebLog.java 4.4 新建WebLogAspect.java 类 4.5 新建测试控制器TestLogController.java 今天给大家分享AOP相关的知识&…