• Spring>autoWire


    autowire----自动装配

     

    在定义Bean时,<bean>标签有一个autowire属性,我们可以通过指定它来让容器为受管JavaBean自动注入依赖对象。
    <bean>的autowire属性有如下六个取值,他们的说明如下:
    1、No:即不启用自动装配。Autowire默认的值。
    2、byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id属性为printer的bean,然后使用Seter方法为其注入。
    3、byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。
    4、constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。
    5、autodetect:在byType和constructor之间自动的选择注入方式。
    6、default:由上级标签<beans>的default-autowire属性确定。


    注意:在配置bean时,<bean>标签中Autowire属性的优先级比其上级标签高,即是说,如果在上级标签中<beans>中定义default-autowire属性为byName,而在<bean>中定义为byType时,Spring IoC容器会优先使用<bean>标签的配置。

    ByName例子 Bean2中包含bean3属性

    <!--根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。-->
    <bean id="bean2" class="com.ncepu.spring.Bean2" autowire="byName"/>
    <bean id="bean3" class="com.ncepu.spring.Bean3" />

    ByType例子   Bean2中包含bean3属性

    <!-- 如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,
    那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,
    属性也不会被设置。如果你不希望这样,那么可以通过设置dependency-check="objects"让Spring抛出异常。
     -->
    	<bean id="bean2" class="com.ncepu.spring.Bean2"  autowire="byType" />
    	<bean id="bean33" class="com.ncepu.spring.Bean3" />
    



     

  • 相关阅读:
    java事件处理(贪吃蛇)
    九九乘法表
    使用文件包含指令include
    jsp页面的基本构成
    软件测试博客

    成功职业女性处世的10大秘诀
    再见啦,冬冬妹
    网摘——杜晓眼眼中的尹珊珊:什么都要,什么都要得到
    网摘——事关“工程师思维”
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637177.html
Copyright © 2020-2023  润新知