zoukankan      html  css  js  c++  java
  • 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" />
    



     

  • 相关阅读:
    [转]关于tomcat 中的 tomcat-users.xml 配置不生效原因
    sql准确判断某个ip
    PS快捷键
    指向指针的指针
    eclipse项目中.classpath文件详解
    使用MyBatis_Generator工具jar包自动化生成Dto、Dao、Mapping 文件
    eclipse同一个工作空间下分开多个项目
    Java程序发送邮件
    Java中实现短信发送
    Java如何判断字符串中包含有全角,半角符号
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637177.html
Copyright © 2011-2022 走看看