XML 配置里的 Bean 自动装配
在XML文件中,
先看一下下面的代码:
<bean id="student" class="com.jeremy.spring.beans.student">
<property name="s_name" value="jeremy"></property>
<property name="age" value="20"></property>
</bean> <bean id="teacher" class="com.jeremy.spring.beans.teacher">
<property name="tch_name" value="java"></property>
<property name="tch_age" value="20"></property>
<property name="student">
<ref bean="student"/>
</property> </bean>
颜色加深部分,以前我们对Bean依赖其他的Bean时,需要具体的指定是那个Bean,以供容器初始化时装载,但是有没有一种方法能让Bean依赖的Bean自动被装载呢??不需要具体的指定是哪一个Bean
答案是有的:
Spring IOC 容器可以自动装配 Bean.
需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式
byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配. (比如Bean1中有一个属性的类型是对象Student类型,那指定这个类型后Spring会自动XML文件是否配置对象Student类型的Bean,如果有就装配,没有就不能执行自动装配,而且如果有多个类型相同的Bean也不行,)
byName(根据名称自动装配): 必须将目标 Bean 的名称和属性名设置的完全相同.(大小写也要注意)
constructor(通过构造器自动装配): 当 Bean 中存在多个构造器时, 此种自动装配方式将会很复杂. 不推荐使用
代码:
<bean id="student" class="com.jeremy.spring.beans.student">
<property name="s_name" value="tom"></property>
<property name="age" value="20"></property>
</bean> <bean id="teacher2" class="com.jeremy.spring.beans.teacher" autowire="byName" >
<property name="tch_name" value="java"></property>
<property name="tch_age" value="20"></property>
</bean>
XML 配置里的 Bean 自动装配的更多相关文章
- Spring XML配置里的Bean自动装配
Spring自动装配 这段是我们之前编写的代码,代码中我们使用了P命名空间 并且使用手动装配的方式将car <bean id="address" class="cn ...
- XML配置里的Bean自动装配与Bean之间的关系
需要在<bean>的autowire属性里指定自动装配的模式 byType(根据类型自动装配) byName(根据名称自动装配) constructor(通过构造器自动装配) 名字须与属性 ...
- Bean XML 配置(4)- 自动装配
Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...
- 【小家Spring】老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?
#### 每篇一句 > 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 #### 相关阅读 [[小家Spring]详解Propert ...
- @ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?
每篇一句 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 相关阅读 [小家Spring]详解PropertyPlaceholderConf ...
- Bean XML 配置(1)- 通过XML配置加载Bean
系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...
- Spring学习记录(三)---bean自动装配autowire
Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系,少写几个ref autowire: no ---默认情况,不自动装配,通过ref手动引用 byName---根据 ...
- spring——bean自动装配
注意:自动装配功能和手动装配要是同时使用,那么自动装配就不起作用. beans.xml <?xml version="1.0" encoding="UTF-8&qu ...
- Spring - 配置Bean - 自动装配 关系 作用域 引用外部属性文件
1 Autowire自动装配1.1 使用:只需在<bean>中使用autowire元素<bean id="student" class="com.kej ...
随机推荐
- atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结
atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结 1. Windows Server 2008 新特性也可以归纳为4个方面. 1 2. 相 ...
- Atitit.注重细节还是关注长远??长远优先
Atitit.注重细节还是关注长远??长远优先 1. 注重细节的误区 1 1.1. 如果连aaa都做不好,那么怎么能够相信你ccc 2 1.2. 一屋不扫何以扫天下??但是扫大街的都是保洁员 2 2. ...
- 总结iOS9中的新的方法
iOS平台在快速的发展,各种接口正在不断的更新.随着iOS9的发布,又有一批老方法不推荐使用了,你若调用这些方法,运行的结果是没有问题的,但是会出现警告“***is deprecated :first ...
- 捕获高像素照片(updated)
可以使用Windows.Phone.Media.Capture.PhotoCaptureDevice 进行高像素图片的捕获(需要自己画视图界面,因为该平台的PhotoChooserTask API 不 ...
- Ubuntu/Debian交叉编译安装ARM平台版本的ffmpeg
1 准备工作 (1)libmp3lame库 下载: wget http://downloads.sourceforge.net/lame/lame-3.99.tar.gz 解压 编译:./con ...
- ISTQB测试人员认证 初级(基础级)大纲
ISTQB测试人员认证 初级(基础级)大纲 ---中文修订版本1(2015年5月6日) 2015-06-22 大纲pdf下载 ISTQB资料中心 在课程大纲中,每个章节都会提供相应的认知水平要求: ...
- spring-boot 集合mybatis 的分页查询
spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...
- 实例37foreach遍历数组
package test; import java.util.List; import java.util.ArrayList; import java.util.Scanner; /** * @au ...
- hdu1078(记忆化搜索)
题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 这道题目,值得我记住它,re了n次,以前写搜索没有注意的一个小地方,导致re这么多次的 ac代码: #inc ...
- keep learning
fueling people’s creativity 助长了人们的创造力,燃烧了人们的激情