使用@Value注解对bean进行属性注入
使用@Value注解,可以有三种属性注入的方式:
1. 使用字面量注入
2. 使用EL表达式注入
3. 使用占位符注入
import org.springframework.beans.factory.annotation.Value;
public class Bottle {
//使用字面量注入属性
@Value(value = "red")
private String color;
//使用el表达式注入属性
@Value(value = "#{30 / 3.14}")
private double diameter;
//使用占位符注入属性,需要在容器中引入配置文件
@Value(value = "${bottle.source}")
private String source;
……
}
如果在占位符中引入配置文件中的值,必须在容器中声明配置文件的位置,可以使用@PropertySource注解
/**
* 配置类,使用@Value注解进行属性注入
* 引入配置文件
*/
@Configuration
@PropertySource(value = {"classpath:/config.properties"})
public class BeanConfig { //使用无参构造器注册Bottle
@Bean(value = "bottle")
@Scope("singleton")
public Bottle bottle() {
return new Bottle();
}
}
这样,从容器中获取的bean对象就会被注入color、diameter、source属性。
@Test
public void test() {
//创建容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ValueBeanConfig.class);
//从容器中获取Bottle实例
Bottle bottle = (Bottle) applicationContext.getBean("bottle");
//控制台输出
System.out.println(bottle.toString());
//关闭容器
((AnnotationConfigApplicationContext)applicationContext).registerShutdownHook();
}
测试结果:
Bottle{color='red', diameter=9.554140127388534, source='laboratory'}
如果容器中声明了配置文件的位置,还可以使用环境变量获取其中的值
bottle.source=laboratory
bottle.size=1599
bottle.nickname=frankie
//创建容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ValueBeanConfig.class);
//从容器中获取环境变量
Environment environment = applicationContext.getEnvironment();
String source = environment.getProperty("bottle.source");
使用@Value注解对bean进行属性注入的更多相关文章
- 【Spring注解驱动开发】如何使用@Value注解为bean的属性赋值,我们一起吊打面试官!
写在前面 在之前的文章中,我们探讨了如何向Spring的IOC容器中注册bean组件,讲解了有关bean组件的生命周期的知识.今天,我们就来一起聊聊@Value注解的用法. 项目工程源码已经提交到Gi ...
- 使用spring注解——定义bean和自动注入
对于java bean的定义和依赖配置,使用xml文件真心是不方便. 今天学习如何用注解,解决bean的定义和注入. 常用注解: 1.自动注入:@Resources,@Autowired 2.Bean ...
- day38 17-Spring的Bean的属性注入:注解方式
这个类已经可以由Spring控制反转了,那么属性呢?属性分为普通属性和对象属性两部分. JSR是一个组织,和W3C一样是定义一些标准的.它里面也定义了一歌注解,Spring对这个注解也是支持的.其实这 ...
- spring的bean的属性注入
一.设置注入 设置注入要求: 要求属性在实体类中必须有getter 和setter方法,然后在spring的工厂中就可以使用property标签进行设值注入. 二.构造注入 通过类的构造方法的方式注入 ...
- Spring之使用注解实例化Bean并注入属性
1.准备工作 (1)导入jar包 除了上篇文章使用到的基本jar包外,还得加入aop的jar包,所有jar包如下 所需jar包 (2)配置xml <?xml version="1.0& ...
- spring中bean配置和注入场景分析
bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并 ...
- Spring笔记②--各种属性注入
Ioc 反转控制 反转资源获取的方向 分离接口与实现 采用工厂模式 采用反转控制 Di 依赖注入 依赖容器把资源注入 配置bean 通过全类名(反射) 配置形式:基于xml方式 Ioc容器的b ...
- Spring之属性注入
时间:2017-1-31 23:38 --Bean的属性注入方式有三种注入方式: 1)接口注入: 定义一个接口,定义setName(String name)方法,定义一个类,实现该 ...
- 【初识Spring】对象(Bean)实例化及属性注入(注解方式)
通过xml的方式进行对象的实列化或属性注入或许有一些繁琐,所以在开发中常用的方式更多是通过注解的方式实现对象实例化和属性注入的. 开始之前 1.导入相关的包(除了导入基本的包还要导入aop的包): 创 ...
随机推荐
- python学习第五十四天hashlib模块的使用
hash算法 hash也做散列,也称为哈希,主要用于信息安全领域中加密算法,hash就是找一种数据内容和数据存放地址直接的映射关系. md5算法 md5讯息算法,广泛使用密码函数 md5算法的特点 1 ...
- Java——自定义外部字体文件
package chapter1; import javax.swing.*;import java.awt.*;import java.io.IOException;import java.io.I ...
- JCTF 2014 小菜两碟
测试文件:https://static2.ichunqiu.com/icq/resources/fileupload//CTF/JCTF2014/re200 参考文章:https://blog.csd ...
- maven的概念模型
maven包含了一个项目对象模型(project object model),一组标准集合,一个项目生命周期(project lifecycle),一个依赖管理系统(dependency manage ...
- maven项目出现红叉
现象:maven项目出现红叉,同时项目中没出现代码错误 解决方案: 可尝试在本地maven项目pom.xml中添加如下: <build> <plugins> <plugi ...
- SPSS Statistics 26.0 下载安装和激活
目录 1. 其他版本 2. IBM SPSS Statistics 26 新增功能 3. 安装步骤 4. 下载地址 1. 其他版本 参考:https://www.cnblogs.com/coco56/ ...
- linux Apache 日志配置
[root@Nagios-Server extra]# vimhttpd-vhosts.conf <VirtualHost *:80> ServerAdmin 111111 ServerN ...
- PAT Basic 1027 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...
- php内置函数分析range()
PHP_FUNCTION(range) { zval *zlow, *zhigh, *zstep = NULL, tmp; , is_step_double = ; double step = 1.0 ...
- 洛谷 P4665 [BalticOI 2015]Network
洛谷 P4665 [BalticOI 2015]Network 你有一棵 $ n $ 个节点的树,你可以在树上加一些边,使这棵树变成一张无重边.自环的图,且删掉任意一条边它仍然联通.求最少要加多少条边 ...