在spring中,使用autowire来配置自动装载模式,对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象。

(1)在Spring框架xml配置中共有5种自动装配:

no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。
byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean 的name 相同,就进行自动装配。 
byType:通过参数的数据类型进行自动装配。
constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。
autodetect:自动探测,如果有构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配。
(2)基于注解的自动装配方式:

使用@Autowired、@Resource注解来自动装配指定的bean。在使用@Autowired注解之前需要在Spring配置文件进行配置,<context:annotation-config />。在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。在使用@Autowired时,首先在容器中查询对应类型的bean:

如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据;

如果查询的结果不止一个,那么@Autowired会根据名称来查找;

如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。

@Autowired可用于:构造函数、成员变量、Setter方法

注:@Autowired和@Resource之间的区别:

(1) @Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。

(2) @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。

Spring的自动装配相关推荐

  1. spring Bean自动装配

    spring Bean自动装配 自动装配是使用spring满足bean依赖的一种方式. spring会在应用上下文中为某个bean寻找其依赖的bean. spring自动装配需要从两个角度来实现,或者 ...

  2. (Spring)自动装配bean

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

  3. Spring autowire 自动装配简介

    Spring autowire 自动装配简介 注意本文与一般spring 标注@Autowire 无关 如下例子定义了3个类 Dperson Dcar & Daddress 其中Dperson ...

  4. Spring Autowire自动装配(转http://lep1985520.blog.163.com/blog/static/56600480200901441338486/)

    Spring Autowire自动装配 技术收藏 2009-01-14 16:13:38 阅读284 评论0   字号:大中小 订阅 Spring Autowire自动装配   在应用中,我们常常使用 ...

  5. Spring学习——自动装配

    自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean有三种装配机制,分别是: 在xml中显式配置 ...

  6. Spring Boot自动装配过程解析及简单Demo演示

    文章目录 1.约定大于配置 2.自动装配原理 2.1.`@SpringBootApplication` 2.2.`@EnableAutoConfiguration` 2.3.`@Import` 2.4 ...

  7. Spring | Bean自动装配详解

    个人主页:BoBooY的CSDN博客_Java领域博主 前言:上节我给大家讲解了Spring的依赖注入,这一节我们讲解Spring中Bean如何自动装配,废话不多说,直接上正文! 文章目录 Bean的 ...

  8. Spring Boot自动装配原理详解

    目录 1.环境和依赖 1.1.spring boot版本 1.2.依赖管理 2.自动装配 2.1.流程概述 2.2.三大步前的准备工作 2.2.1.注解入口 2.2.2.获取所有配置类 2.3.获取过 ...

  9. Spring Autowire自动装配

    1.在应用中,我们常常使用<ref>标签为JavaBean注入它依赖的对象,同时也Spring为我们提供了一个自动装配的机制,在定义Bean时,<bean>标签有一个autow ...

  10. 【Spring】—— 自动装配

    一.Spring中装配bean的方式 1.在XML中显式配置 2.在Java中进行显式配置 3.隐士的bean发现机制和自动装配 二.自动装配示例 1.在需要装配到其他bean中的类中加入@Compo ...

最新文章

  1. NSMutableArray 记住取不到时要进行强转
  2. 藏獒当初为何成为“神话”,如今是谁毁了昔日藏獒的神话?
  3. 首发:徐亦达老师的机器学习课件及下载(中文目录)
  4. OpenCASCADE可视化:应用交互服务之交互对象
  5. 转:函数要多小才够好——谈小函数之道
  6. Jupyter中打印所有结果的解决办法
  7. django-models类索引外键时候的related_name属性作用
  8. 使用 C# 9 的records作为强类型ID - 初次使用
  9. nessus 漏洞扫描器
  10. java 虚拟内存不够,java虚拟内存不足
  11. 【TensorFlow】TensorFlow函数精讲之 tf.random_normal()
  12. windowswps怎么以文件形式发送_wps怎么以文件形式分享
  13. python做大型网站_django可以开发大型网站吗
  14. C#项目班级管理系统
  15. linux sed 替换 斜杠,sed命令替换字符包含斜杠\,引号的处理方法
  16. 在uni-app中使用阿里巴巴图标库字体图标
  17. Kafka的Topic删不掉
  18. PHP安装rabbitmq扩展
  19. 文档中心 统计分析 统计分析Android文档 集成文档
  20. 远程springmvc ajax请求乱码,网络编程springMVC解决ajax请求乱码的三种方法

热门文章

  1. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-softmax多分类-06
  2. linux mysql date 格式_关于MySQL中的三种日期类型
  3. Eclipse Git 克隆项目的时候出现Internal error; consult Eclipse error log
  4. 20160419 while练习,复习
  5. 学习日记-类继承中的上下转换
  6. [转]语音报警.NET开发初探
  7. 逆波兰表达式简单介绍
  8. arm交叉编译bluez-5.25
  9. kubectl 命令管理(1)
  10. python 修改字符串 循环_python – 模式匹配并用if else循环替换字符串