Spring自动装配Bean的五种方式
在Spring中,支持 5 自动装配模式。
no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用
byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。
byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。
constructor – 在构造函数参数的byType方式。
autodetect – 如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。
示例
1、Auto-Wiring "no"’这是默认的模式,需要通过 "ref" 属性来连接 bean。
package org.spring.autowring;
public class Person {
public Person(Ability ability){
super();
this.ability=ability;
}
private Ability ability;
public Ability getAbility() {
return ability;
}
public void setAbility(Ability ability) {
this.ability = ability;
}
@Override
public String toString(){
return "Person=[ablity=[skill="+this.ability.getSkill()+"]]";
}
}
package org.spring.autowring;
public class Ability {
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
<!-- no – 缺省情况下,自动配置是通过“ref”属性手动设定 -->
<bean id="person" class="org.spring.autowring.Person">
<property name="ability" ref="ability"></property>
</bean>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>

2、Auto-Wiring "byName" 按属性名称自动装配
<!-- Auto-Wiring "byName" 按属性名称自动装配 -->
<bean id="person" class="org.spring.autowring.Person" autowire="byName"/>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
3、Auto-Wiring "byType" 按属性名称自动装配
<!-- Auto-Wiring "byType" 按属性名称自动装配 -->
<bean id="person" class="org.spring.autowring.Person" autowire="byType"/>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
4、constructor – 在构造函数参数的byType方式
<!-- constructor – 在构造函数参数的byType方式。 -->
<!-- 构造方法的参数 -->
<bean id="person" class="org.spring.autowring.Person">
<constructor-arg>
<ref bean="ability"></ref>
</constructor-arg>
</bean>
<bean id="ability" class="org.spring.autowring.Ability">
<property name="skill" value="Java Programming"></property>
</bean>
Spring自动装配Bean的五种方式的更多相关文章
- Spring容器装配Bean的三种方式
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...
- Spring 自动装配 Bean
Spring3系列8- Spring 自动装配 Bean 1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiri ...
- Spring自动装配Bean详解
1. Auto-Wiring ‘no’ 2. Auto-Wiring ‘byName’ 3. Auto-Wiring ‘byType 4. Auto-Wirin ...
- spring装配bean的三种方式及其混合装配
在spring容器中装配bean有三种基本方式和混合装配方式: 隐式的bean自动发现机制和自动装配 在java中进行显式配置 在xml中配置 混合装配(在多个java文件中配置.在JavaConfi ...
- Spring装配Bean的三种方式+导入和混合配置
目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...
- Spring自动装配bean
Spring推荐面向接口编程,这样可以很好的解耦具体的实现类. CompactDisc.class 文件: public interface CompactDisc { void play(); } ...
- spring 装配bean的三种方式
这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...
- spring 自动装配 bean 有哪些方式?
Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...
随机推荐
- bootstrap基础学习五篇
bootstrap表格 Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. < ...
- DM8168 OpenCV尝试与评估(编译ARM版OpenCV)
交叉编译opencv2.3.1,并在DM8168 cortex A8中执行图像处理. 开发环境: PC:ubuntu12.04LTS.Intel Core 2 Duo CPU E7200@2. ...
- Android 中加载几百张图片做帧动画防止 OOM 的解决方案
Android 中加载几百张图片做帧动画防止 OOM 的解决方案 最近,项目中有个需求:就是要做一个帧动画,按理说这个是很简单的!但是我能说这个帧动画拥有几百张图片吗?...... 填坑一 ---帧动 ...
- MY97默认只能选择昨天的时间
<input type="text" id="startTime" class="Wdate" style="width: ...
- css从中挖去一个圆
始终居中: width: 300px; position: fixed; /*在可视区域的上下左右居中*/ top: calc(50vh - 200px); left: calc(50vw - 150 ...
- 【BZOJ3681】Arietta 树链剖分+可持久化线段树优化建图+网络流
[BZOJ3681]Arietta Description Arietta 的命运与她的妹妹不同,在她的妹妹已经走进学院的时候,她仍然留在山村中.但是她从未停止过和恋人 Velding 的书信往来.一 ...
- Android开源项目分类汇总【畜生级别】
From :http://blog.csdn.net/forlong401/article/details/25459403?c=6c4cd677a617db4655988e41ee081691#t7 ...
- uitextFiled字数输入限制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...
- Android /system/build.prop 文件
# begin build properties (开始设置系统性能) # autogenerated by buildinfo.sh (通过设置形成系统信息) ro.build.id=GRI40 ( ...
- Oracle 删除表
drop table books;的指令会将表放到回收站里, 用 flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to befor ...