除了使用 XML 和 Annotation 的方式装配 Bean 以外,还有一种常用的装配方式——自动装配。自动装配就是指 Spring 容器可以自动装配(autowire)相互协作的 Bean 之间的关联关系,将一个 Bean 注入其他 Bean 的 Property 中。

要使用自动装配,就需要配置 元素的 autowire 属性。autowire 属性有五个值。

autowire 的属性和作用

名称 说明
byName 根据 Property 的 name 自动装配,如果一个 Bean 的 name 和另一个 Bean 中的 Property 的 name 相同,则自动装配这个 Bean 到 Property 中。
byType 根据 Property 的数据类型(Type)自动装配,如果一个 Bean 的数据类型兼容另一个 Bean 中 Property 的数据类型,则自动装配。
constructor 根据构造方法的参数的数据类型,进行 byType 模式的自动装配。
autodetect 如果发现默认的构造方法,则用 constructor 模式,否则用 byType 模式。
no 默认情况下,不使用自动装配,Bean 依赖必须通过 ref 元素定义。

示例自动装配。首先将 applicationContext.xml 配置文件修改成自动装配形式,如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><bean id="personDao" class="com.mengma.annotation.PersonDaoImpl" /><bean id="personService" class="com.mengma.annotation.PersonServiceImpl"autowire="byName" /><bean id="personAction" class="com.mengma.annotation.PersonAction"autowire="byName" />
</beans>

在上述配置文件中,用于配置 personService 和 personAction 的 元素中除了 id 和 class 属性以外,还增加了 autowire 属性,并将其属性值设置为 byName(按属性名称自动装配)。

默认情况下,配置文件中需要通过 ref 装配 Bean,但设置了 autowire=“byName”,Spring 会在配置文件中自动寻找与属性名字 personDao 相同的 ,找到后,通过调用 setPersonDao(PersonDao personDao)方法将 id 为 personDao 的 Bean 注入 id 为 personService 的 Bean 中,这时就不需要通过 ref 装配了。

使用 JUnit 再次运行测试类中的 test() 方法,控制台的显示结果如下图所示。

从输出结果中可以看出,使用自动装配的方式同样完成了依赖注入。

Spring自动装配Bean相关推荐

  1. spring自动装配Bean的五种方式

    no:默认方式,手动装配方式,需要通过ref设定bean的依赖关系 byName:根据bean的名字进行装配,当一个bean的名称和其他bean的属性一致,则自动装配 byType:根据bean的类型 ...

  2. spring二:装配bean(自动装配)

    创建应用对象之间协作关系的行为通常称为装配(wiring),这就是依赖注入(DI)的本质. Spring提供了三种主要的装配机制: 1. 在xml中进行显式配置.  2. 在java中进行显式配置. ...

  3. (Spring)自动装配bean

    文章目录 自动装配bean 1. 环境搭建 2. byName自动装配 3. byType自动装配 4. 使用注解自动装配 4.1 @Autowired和@Qualifier 4.2 @Resourc ...

  4. Spring学习笔记--自动装配Bean属性

    Spring提供了四种类型的自动装配策略: byName – 把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中. byType – 把与Bean的属性具有相同类型 ...

  5. Spring自动装配Beans

    在Spring框架,可以用 auto-wiring 功能会自动装配Bean.要启用它,只需要在 <bean>定义"autowire"属性. <bean id=&q ...

  6. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

    创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...

  7. Spring之装配Bean(一)

    Spring中装配bean的三种主要方式 1.隐式的bean发现机制和自动化装配 组件扫描( component scanning) : Spring会自动发现应用上下文中所创建的bean. 自动装配 ...

  8. Spring 自动装配 ‘byType’

    转载自   Spring 自动装配 'byType' Spring 自动装配 'byType' 这种模式由属性类型指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans ...

  9. Spring 自动装配 ‘byName’

    转载自  Spring 自动装配 'byName' Spring 自动装配 'byName' 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 ...

最新文章

  1. jQuery Mobile开发1-UI components
  2. 报告鼠标和键盘事件的一个程序(转)
  3. python--内置函数
  4. POJ - 1094 Sorting It All Out(拓扑排序)
  5. 为什么log4j的概念模型是错的--zlog的模型简介
  6. 牛客网-剑指offer 第二题(字符替换)
  7. 修改pip的源repository
  8. linux电脑合盖后卡住了,解决ubuntu合盖后无法唤醒
  9. linux部署Oracle数据库--安装篇
  10. Matplotlib 中文用户指南 4.2 基本的文本命令
  11. java大致了解_学习Java第一天,大致了解
  12. linux性能监测工具
  13. 谷粒商城-10-p193-p247
  14. matlab曲线拟合方法和函数拐点查找
  15. android应用图标在哪修改器,手机应用图标修改器app
  16. 网店营销成为运营商营销的重要平台
  17. 有趣的计算机课的作文,有趣的电脑课作文400字
  18. 随机森林oob_score及oob判断特征重要性
  19. h3c linux驱动 wn612_安装Ubuntu双系统系列——64位Ubuntu安装H3C的INode客户端
  20. JS And Vue代码调试——IDEA+JS+vue-devtools-dev+JetBrains IDE Support(Chrome插件)

热门文章

  1. java 友好时间显示_仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]...
  2. php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)
  3. 江苏单招试题计算机原理及答案,江苏省对口单招计算机组装与维修计算机原理考题分类汇总.docx...
  4. java中fis和fos_java中-的流-与操作
  5. 关于提高网页加载速度个人学习以及经验总结
  6. 什么是Nacos?Nacos注册配置中心介绍
  7. visual studio 判断dropdownlist选的是什么_心理测试:五个小蓝人,你选哪个?测你是不是一个容易追求的人...
  8. java仿聊天室项目总结_Java团队课程设计-socket聊天室(Day4总结篇)
  9. jsp import mysql con_jsp的分页查询的代码(mysql数据库)
  10. excel 公式 平移 引用单元格_不学会这3个Excel隔列求和函数公式,你只能一个个单元格去相加...