Bean的自动装配Autowiring

例:有两个类AutoWiringDao和AutoWiringService两个类,AutoWiringDao是AutoWiringService的一个属性.在没用自动装配之前是这样配置的:

<?xml version="1.0" encoding="UTF-8" ?>
<beans ........>
    <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" />
    <bean id="autoWiringService" class="com.main.huihui.AutoWiringService">
        <property name="autoWiringDao" ref="autoWiringDao" />
    </bean>
</beans>

在使用自动装配后:

一.no:不做任何操作(默认选项)

二.byName:根据属性名自动装配.此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配.

<?xml version="1.0" encoding="UTF-8" ?>
<beans ........
    default-autowiring="byName">
    <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" />
    <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" />
</beans>

三.byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么都不发生.根据byType来查找,与id没有关系,id不写也可以.

<?xml version="1.0" encoding="UTF-8" ?>
<beans ........
    default-autowiring="byType">
    <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" />
    <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" />
</beans>

四.constructor:与byType方式类似,不同之处在于它应用于构造函数.如果容器中没有找到与构造器参数一致的bean,那么抛出异常.

class AutoWiringService {
    private AutoWiringDao autoWiringDao;
    public AutoWiringService(AutoWiringDao autoWiringDao) {
        this.autoWiringDao = autoWiringDao;
    }
    ....
}
<?xml version="1.0" encoding="UTF-8" ?>
<beans ........
    default-autowiring="constructor">
    <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" />
    <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" />
</beans>

时间: 2024-08-27 16:59:15

Bean的自动装配Autowiring的相关文章

spring实战之Bean的自动装配(非注解方式)

Bean的自动装配 自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系. 1.1 自动装配Bean属性: Spring提供了四种各具特色的自动装配策略: 1.byName-把与Bean的属性具有相同名字的其他Bean自动装配到Bean的对应属性中.如果没有跟属性的名字相匹配的Bean,则该属性不进行装配. 2.byType-把与Bean的属性具有相同类型的其他Bea

Spring bean的自动装配属性

bean的自动装配属性能简化xml文件配置. bean 的自动装配属性分为四种: 1.byName 2.byTyoe 3.constructor 4. autodetect byName: 它查找配置文件中的的bean的id 或者name 和本bean中的成员属性名相同的bean 自动装配 所以不用再给本bean添加peoperty标签 例:有两个类 public Class  Person{ } public Class Customer{ private Person p; public s

Spring 源码(九)@Autowired注解实现原理(Spring Bean的自动装配

@Autowired注解的实现过程,其实就是Spring Bean的自动装配过程.通过看@Autowired源码注释部分我们可以看到@Autowired的实现是通过AutowiredAnnotationBeanPostProcessor后置处理器中实现的. AutowiredAnnotationBeanPostProcessor 类图 PriorityOrdered:确认 AutowiredAnnotationBeanPostProcessor 后置处理器的执行优先级 BeanFactoryAw

Spring 源码(九)@Autowired注解实现原理(Spring Bean的自动装配)

@Autowired注解的实现过程,其实就是Spring Bean的自动装配过程.通过看@Autowired源码注释部分我们可以看到@Autowired的实现是通过AutowiredAnnotationBeanPostProcessor后置处理器中实现的. AutowiredAnnotationBeanPostProcessor 类图 PriorityOrdered:确认 AutowiredAnnotationBeanPostProcessor 后置处理器的执行优先级BeanFactoryAwa

Spring_总结_03_装配Bean之自动装配

一.前言 本文承接上一节:Spring_总结_02_依赖注入 在上一节我们了解到依赖注入的实质就是装配. 这一节我们来学习下装配Bean的相关知识. 二.Bean的装配机制 1.三种装配机制 Spring提供了三种主要的bean的装配机制: (1)隐式的bean发现机制和自动装配 (2)在Java中进行显示配置 (3)在XML中进行显示配置 2.如何选择 (1)第一考虑自动装配,显示配置越少越好. (2)当必须要显示配置的时候,再使用类型安全并且比XML更强大的JavaConfig (3)最后,

Spring的IOC容器—Bean的自动装配

我们对XML配置文件装配Bean的方式都很熟悉了,但是随着业务的复杂性,我们可能编写越来越复杂的XM配置. Spring提供了4种类型的自动装配的方式,帮助我们减少XML的配置数量.如下: byName:根据与bean的属性具有相同名字(或者ID)的其他bean进行注入 byType:   根据与bean的属性具有相同类型的其他bean进行注入 constructor:根据与bean的构造函数参数有相同类型的bean进行注入 autodetect :  首先尝试使用constructor进行注入

Spring Framework之Bean的自动装配检测和AOP简述

注解可以充分利用Java的反射机制获取类结构信息,从而有效减少配置工作:注解与java代码位于同一个文件,便于对变动的统一维护: 1)      Spring容器默认禁用注解装配,因此使用注解装配之前需要在配置文件中显示打开注解装配: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

Spring 自动装配 Bean

Spring3系列8- Spring 自动装配 Bean 1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wiring ‘constructor’ 5.      Auto-Wiring ‘autodetect’ Spring Auto-Wiring Beans——Spring自动装配Bean 所谓自动装配,就是将一个Bean注入到其他Bean的Prope

Spring基础系列8 -- Spring自动装配bean

Spring基础系列8 -- Spring自动装配bean 转载:http://www.cnblogs.com/leiOOlei/p/3548290.html 1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wiring ‘constructor’ 5.      Auto-Wiring ‘autodetect’ Spring Auto-Wiring Be