• 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" />
    



     

  • 相关阅读:
    Selenium开发环境搭建
    如何抓取移动端崩溃日志?
    html+ashx + NPOI 实现导出Excel文件并且预览和下载
    oss 文件上传:Web端上传介绍
    事务控制和锁定语句
    索引的设计和使用
    最近几年读过的书籍
    053.NET5_EFCoreMigration
    052.NET5_EFCoreDbFirst
    051.NET5_中间件的多种引用方式
  • 原文地址:https://www.cnblogs.com/xiaoqiangzhaitai/p/5637494.html
Copyright © 2020-2023  润新知