@Value是个什么东西
对注解不了解的可以看一下:

首先我们要明确:
@Value 是 Spring 框架的注解。
它有什么作用呢?
作用
@Value 通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值。
使用方式
常量注入
顾名思义,就是把一个写死的值赋给对应变量,形式如下:
// 注入普通字符串
@Value("Bin")
private String username;
// 注入文件资源
@Value("classpath:com/test/config.xml")
private Resource resource;
// 注入URL资源
@Value("http://www.baidu.com")
private Resource url;
以上做法显而易见,并不能做到动态配置。
这跟直接赋值有啥区别?
所以这种方式应用很少,知道有这么个用法就行了。
读取配置文件
这种是应用最多的方式了,重点记住这种。
形式也简单,废话不多说,直接上代码。
配置文件 application.properties 或者 application.yml,写法略有不同。
application.properties:
common.name=bin
application.yml:
common:
name: bin
@Value("${common.name}")
private String name;
// 配置文件找不到的话,给一个默认值
@Value("${common.name:JohnDoe}")
private String name;
读取Bean的属性
读取Bean属性与读取配置文件属性用法不一样,前者使用 $ 符号,后者使用 # 符号。
首先将对象注册到 Spring 容器中:
@Data
@Component
public class User {
private String id;
private String name;
}
Bean 属性注入:
@Value("#{user.name}")
private String name;
使用案例
最后我们用一个简单案例做一个实现。
创建一个Bean对象:
@Component
@Data
public class Person {
@Value("bin")
private String name;
@Value("${age}")
private Integer age;
}
配置文件:
age=22
测试:
@SpringBootTest
class DemoApplicationTests {
// 读取bean属性
@Value("#{person.name}")
private String name;
// 读取bean属性
@Value("#{person.age}")
private String age;
@Test
void contextLoads() {
System.out.println("常量注入获取name为:" + name);
System.out.println("常量注入获取age为:" + age);
}
}
结果:
常量注入获取name为:bin
常量注入获取age为:22
以上就是对 @Value 的简单介绍,其实@Value还有许多高级用法,本篇不再深入。
发类似这样的小文章的目的都是为了将一些小知识点作为前置,为了在以后说一些艰难晦涩的内容时少啰嗦一些基础。
天下难事,必作于易;
天下大事,必作于细。
联系我:
@Value是个什么东西的更多相关文章
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- iOS有关横向TableView的东西
之前看到Apple store里面有横向的tableview,当然也有可能是collectionview啦. 尤其是项目中只有一条那么需要横向滑动的东西,就没有必要使用庞大的collectionvie ...
- 使用ENode框架前您需要了解的东西(初稿)
选择ENode意味着什么可能很多人还不太清楚.我简单整理了一下: 意味着你选择了:你需要做DDD领域建模.选择了事件驱动的架构.选择了CQRS架构.选择了最终一致性.选择了事件溯源.选择了分布式.这些 ...
- 如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛
如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己 ...
- Intellij IDEA的一些东西
Intellij IDEA的一些东西 2016-03-19 15:26 Ctrl + R 在当前文件进行文本替换 (必备) Ctrl + N 根据输入的 类名 查找类文件 Ctrl + Ctrl + ...
- 神奇的BFC以及被忽略的东西
BFC是CSS中一个非常重要的概念,经常用来清除浮动以及处理外边距折叠,但BFC到底是个什么东西却很难准确的表达清楚,国内的相关技术文档基本都不全面,本文的目的就是对BFC的方方面面做个整理,当然未必 ...
- 关于这个博客以及C++入门该懂的一些东西
给三牧中学c++入门的同学们看的博客. 大概是入门一类的?说不定会写点自己的结题报告. 写的不好/写错了别怪我,蒟蒻瑟瑟发抖. 天哪要开始写入门了我好慌那么接下来是编译器连接. (本蒟蒻喜欢用DEV ...
- LabVIEW 吸星大法 - 看见的好东西都是我的(上篇)
前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; ...
- 前端er是否忽略了某些东西?——读《ppk谈JavaScript》
关于书 “不知道ppk的网站QuirksMode,说明你可能还没有真正成为资深的JavaScript程序员.” ——Roger Johansson,瑞典资深Web专家. ppk是世界级前端技术专家,W ...
- 解读SDN的东西、南北向接口
北向接口(Northbound Interface)是为厂家或运营商进行接入和管理网络的接口,即向上提供的接口. 南向接口(Southbound Interface)是提供对其他厂家网元的管理功能,支 ...
随机推荐
- 兴达易控Modbus转Profinet网关连接三菱A800变频器配置案例
兴达易控Modbus转Profinet网关连接1200Profinet转modbus接三菱A800变频器 下面介绍A800 变频器通过兴达易控modbus转profinet网关,使1200plc无需编 ...
- Biwen.QuickApi代码生成器功能上线
[QuickApi("hello/world")] public class MyApi : BaseQuickApi<Req,Rsp>{} 使用方式 : dotnet ...
- Redis系列之——API的使用
文章目录 一 通用命令 1.1 通用命令 1.2 数据结构和内部编码 1.3 单线程架构 1.3.1 单线程架构, 1.3.2 单线程为什么这么快 1.3.3 注意 二 字符串类型 2.1 字符串键值 ...
- 基于 Angular和Material autocomplete组件再封装的可双向绑定key-value的可输入下拉框
GitHub: https://github.com/Xinzheng-Li/AngularCustomerComponent 效果图:为了方便使用,把许多比如ADD的功能去了,可以在使用后自行实现. ...
- 【Unity3D】Shader Graph节点
1 前言 Shader Graph 16.0.3 中有 208 个 Node(节点),本文梳理了 Shader Graph 中大部分 Node 的释义,官方介绍详见→Node-Library. ...
- js性能优化解决办法
1. 减少http请求次数:CSS Sprites, JS.CSS 源码压缩.图片大小控制合适:网页 Gzip,CDN 托管,data 缓存 ,图片服务器 2. 前端模板 JS + 数据,减少由于HT ...
- nginx学习(基本概念、配置和命令、反向代理、负载均衡、动静分离)
之前都只会照着网上的nginx配置和代码什么的直接拿过来用,但是没系统学习过,所以来系统学习一下nginx内容. 建议服务器不要关闭防火墙,按需开启端口就好,然后云服务器也要设置SSH密钥,安全性高一 ...
- 使用Kali Linux进行主机发现实验
主机发现 [实训目的] 掌握主机扫描的工作原理,学会使用ping等扫描工具,发现网络当中活跃的主机. [场景描述] 在虚拟机环境下配置4个虚拟系统"Win XP1" "W ...
- 记录一下我的ctf比赛的web题目
Web之getshell: 具体代码如下 <?php highlight_file(__FILE__); error_reporting(0); echo "<h1>WEL ...
- 面试官:SOA 和微服务的区别?这回终于搞清楚了!
https://developer.aliyun.com/article/839526 简介: 如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益.累计收益等信息.假如这个页面所展示 ...