1. autowire 自动装配
属性:
byName <bean .... autowire="byName">
byType
constructor
autodetect
default
*如果目标Bean找不到,则对应的属性值为null;但如果找到多个匹配对象,则会有异常抛出。如需要避免异常,可以启用<bean/>内置的primary属性。如<bean id="testBean" class="test.TestBean" primary="true">
*autowire-candidate 该属性设置为false会使当前bean不会成为其他bean的协作者。如<bean .... autowire-candidate="false">.
*@Autowired 注解
必须加入<bean id="..." class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"> 来激活注解
这样就可以在代码中加入如:(可以针对构造器,属性,方法,特殊对象)
@autowired(required=false)
......
注意这里required和@Require注解的区别:同样是检查依赖条件,但required=false时,即使没找到合适的依赖条件,不会抛出异常,而@Require则会抛出异常.
2.dependency-check 检查对应的属性是否提供取值
属性:
none
simple
objects
all
default
如<bean ... dependecy-check="objects"> 只会检查注入的是对象的bean,如没有提供相应取值,则通不过依赖检查.
<property name="hello" ref="helloworld"/>
3.@Require 注解
更加细粒度的检查属性是否提供取值
必须加入<bean id="..." class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"> 来激活注解
4.<qualifier/>元素和@Qualifier注解
细粒度的控制@Autowired,可用于属性,类,参数,接口等地方。比如有多个同一类型但是不同的bean需要注入同一受管bean时,如
<bean id="bean2a" class="test.TestBean2">
<qualifier value="2a">
</bean>
<bean id="bean2b" class="test.TestBean2">
<qualifier value="2b">
</bean>
<bean id="bean2c" class="test.TestBean2">
<qualifier value="2c">
</bean>
.......
在代码中可如下编写
@Qualifer("2a")
private TestBean2 testBean2a;
@Qualifer("2b")
private TestBean2 testBean2b;
@Qualifer("2c")
private TestBean2 testBean2c;
5.<context:annotation-config/>
以上不管是@Required还是@Autowired注解,开发者都需要在XML中配置该元素。
这是为了编写方便,不用单独列出注解必须的一些bean。
但还有一些它没有能自定义的,如RequiredAnnotationBeanPostProcessor.
分享到:
相关推荐
### Spring学习笔记1 #### 一、Spring框架简介与IOC概念 **Spring**是一个开源的Java平台框架,它提供了一种全面的编程模型,并通过一系列的功能模块支持企业级应用程序开发。Spring的核心特性包括依赖注入...
本笔记将主要聚焦于如何将Spring与Struts2进行整合,以实现更加灵活和可维护的系统架构。 首先,Spring的核心在于其Inversion of Control(IoC)容器,也称为依赖注入容器。它负责创建对象并管理它们之间的关系,...
### 马士兵Spring学习笔记知识点汇总 #### 一、面向接口编程(面向抽象编程) **概念:** 面向接口编程是指在设计系统时,尽量通过接口来定义各个组件之间的交互方式,而不是直接依赖于实现类。这种方式使得系统...
### Spring框架案例学习文档笔记知识点总结 #### 第一课:面向抽象编程 ...以上是对“spring框架案例学习文档笔记”主要内容的详细总结和扩展,旨在帮助读者更好地理解和掌握Spring框架的相关知识点。
1. 简化企业级开发:Spring 封装了多种企业级服务,提供了更便捷的访问方式,通过IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得编程更加简洁。 2. 设计良好...
本篇笔记主要涉及Spring的基础知识,包括如何实例化Spring容器、配置schema、处理bean的同步问题以及定制bean的生命周期行为。 首先,Spring容器的实例化有两种常见方式。第一种是通过`ClassPathApplicationContext...
### Spring2.5 学习笔记关键知识点概览 #### 面向抽象编程与Spring框架 面向抽象编程是Spring框架的核心理念之一,它强调通过接口而非具体实现来进行编程,从而提高了系统的灵活性和可扩展性。在Spring中,可以...
在本文中,我们将深入探讨Spring配置文件的相关知识点,以及如何有效地使用它们。 1. **XML配置文件** - **基本结构**:Spring的XML配置文件通常以`<beans>`元素作为根元素,其中包含多个`<bean>`元素,每个`...
Spring 框架是Java开发中广泛使用的轻量级框架,它简化了对象的创建、管理以及依赖注入。本文将深入探讨Spring的核心概念和配置,包括依赖库、配置文件、对象管理、作用域以及属性编辑器等关键点。 首先,Spring...
1. **依赖注入**:Spring的核心特性之一,它允许开发者声明组件之间的依赖关系,而不是硬编码这些依赖。通过XML配置文件或注解,Spring可以在运行时自动装配Bean,简化了对象的创建和管理,提高了代码的可测试性和可...
### Spring In Action笔记100例精要解析 #### 1. `<ref>`标签中的`bean`, `local`, `parent`三个属性的区别 在Spring框架中,`<ref>`标签用于表示一个对象引用,通常用来注入另一个Bean。该标签包含三个重要的属性...
### Spring学习笔记(有代码有注解解释) #### Spring框架两大核心机制——IoC与AOP ##### IoC(控制反转)/DI(依赖注入) **IoC** 是 Inversion of Control 的缩写,意为“控制反转”。而 **DI**(Dependency ...
在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...
《Spring框架案例学习文档笔记》是对Spring框架深入学习的重要参考资料,涵盖了从基础概念到实际应用的多个方面。本文档主要围绕面向抽象编程、JDOM的基本使用、Spring功能模拟、Spring运行环境搭建,以及核心特性...
7. **自动装配**:使用`autowire`属性,可以让Spring容器自动将匹配的bean注入到指定的位置,进一步简化了配置。 通过上述步骤,我们可以看到Spring框架如何通过其强大的功能,帮助开发者构建出结构清晰、易于维护...