在开发中,我们常常使用<ref>标签为JavaBean注入它依赖的对象。这种方式比较耗费资源同时也会导致系统的复杂性。在定义Bean时,<bean>标签有一个autowire属性,我们可以通过指定它来让容器为受管JavaBean自动注入依赖对象。
1、 No:即不启用自动装配。Autowire默认的值。不使用Autowire,引用关系显示声明,spring的reference也建议不用autoware,因为这会破坏模块关系的可读性。
2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printer的bean,然后使用Seter方法为其注入。
3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置dependency-check="objects"让Spring抛出异常。
4、 constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常。
5、 autodetect:在byType和constructor之间自动的选择注入方式。通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式,否则采用
constructor。
6、 default:由上级标签<beans>的default-autowire属性确定。
分享到:
相关推荐
《Spring自动装配详解——基于IDEA 2020的小实例》 在Java开发领域,Spring框架以其强大的功能和灵活性,成为了企业级应用开发的首选。其中,Spring的自动装配特性(Autowired)是其核心特性之一,极大地简化了依赖...
在Spring框架中,自动装配(Autowiring)是一种强大的特性,它允许我们无需显式配置bean之间的依赖关系,Spring会自动地将bean的依赖注入到它们的实例中。本示例"spring-autowire-demo.zip"是基于Spring 5.3.6版本,...
本篇文章将深入探讨Spring自动装配的工作原理、配置方式以及应用场景。 1. 自动装配的基本概念 自动装配是指Spring容器在创建bean实例时,自动识别并设置其依赖对象的过程。它减少了开发者手动配置bean之间依赖关系...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名,其中自动装配(Auto-Wiring)是DI的一种实现方式。自动装配允许开发者减少手动配置bean之间的依赖关系...
本篇将详细探讨"3Spring使用annotation方式autowire"这一主题,包括注解驱动的自动装配(Autowiring)以及相关的源码分析。 ### 一、注解驱动的自动装配 自动装配是Spring框架的一个核心特性,它允许框架自动管理...
1. 多线程Autowire注入null的原因是因为多线程是防注入的,容器中的组件不会自动注入到多线程中。 2. 解决方案一:将需要使用的service当做多线程实现类的一个属性参数。 3. 解决方案二:写个获取spring bean的帮助...
标题中的“Spring自动装配”指的是Spring框架中的一个重要特性,它允许开发者在不显式配置Bean依赖的情况下,由Spring容器自动管理Bean之间的依赖关系。这一特性极大地简化了代码,提高了可维护性和可测试性。 在...
当在字段、setter方法、构造器参数或方法上使用`@Autowired`时,Spring会查找类型匹配的bean并自动注入。若没有找到精确匹配的bean,可以使用`@Qualifier`注解指定特定的bean。 ```java @Service public class ...
另外,Spring Boot的`@Autowired`注解也可以自动匹配并注入bean,简化配置。 ### 五、总结 setter注入是Spring框架中的一种基础注入方式,适用于大多数情况。虽然它有其局限性,但结合其他注入方式,如构造器注入...
在Java的Spring框架中,属性参考和自动绑定是两个重要的概念,它们为开发者提供了灵活且强大的依赖注入机制。本文将深入解析这两个概念,并通过示例代码来阐述其工作原理。 ### Spring属性参考 在Spring中,属性...
**自动装配(Autowired)是Spring框架中的一个重要特性,它允许我们自动将依赖注入到bean中,而无需显式地在配置文件中指定依赖关系。在本文中,我们将深入探讨Autowired的工作原理、使用方式以及它如何简化Java应用的...
在这个工程中,Spring3采用了标签注入的方式,这意味着在XML配置文件中,我们可以使用`<bean>`标签的`autowire`属性来实现自动装配,减少手动配置的工作量。同时,Spring3还集成了Hibernate3,使得数据访问层的管理...
### Spring自动装配模式详解 #### 一、引言 在Spring框架中,自动装配是一种非常实用的功能,可以简化Bean的依赖注入过程。Spring提供了多种自动装配模式,每种模式都有其适用场景。本文将详细介绍Spring框架中的...
Spring系列第7篇:依赖注入之手动注入Spring系列第8篇:自动注入(autowire)详解,高手在于坚持Spring系列第9篇:depend-on到底是干什么的?Spring系列第10篇:primary可以解决什么问题?Spring系列第11篇:bean中...
在Spring框架中,自动装配(Auto-Wiring)是一种简化配置的方式,它...在压缩包文件"20110419spring"中,可能包含了一些关于Spring自动装配的示例代码或者教程,你可以进一步研究这些资源,以加深对这一主题的理解。
5. **Spring_demo_03_autowire** - 自动装配(Autowiring)是Spring自动扫描classpath的核心特性,它能根据类型或名称自动为bean注入依赖。 6. **Spring_demo_08_autowired_qualifier** - @Autowired注解配合@...
- default:使用默认方式,可以通过在beans标签中使用default-autowire属性来配置全局的自动注入规则。 - no:不使用自动注入,使用依赖注入。 scope属性用于定义Spring bean的作用域,它决定了Spring容器创建对象...
1. `byName`:Spring会查找与bean属性名相同的bean,并自动注入。 2. `byType`:Spring会查找类型匹配的bean,并注入第一个找到的实例。 3. `constructor`:Spring会寻找合适的构造函数,根据参数类型来查找并注入...
byName 自动装配是指通过设置 property 标签的 autowire 属性为 byName,Spring 将自动寻找一个与该属性名称相同或 id 相同的 Bean,注入进来。例如: ```xml <property name="dataSource" autowire="by...
Spring框架常见问题解析...Autowire 是 Spring 的自动装配机制,通过指定 autowire 属性,可以让容器为受管 JavaBean 自动注入依赖对象。Autowire 有六种方式:No、byName、byType、constructor、autodetect、default。