`
wutheringsea
  • 浏览: 262576 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring 笔记1---autowire相关

阅读更多

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学习笔记1 #### 一、Spring框架简介与IOC概念 **Spring**是一个开源的Java平台框架,它提供了一种全面的编程模型,并通过一系列的功能模块支持企业级应用程序开发。Spring的核心特性包括依赖注入...

    SSH笔记-Spring整合Struts2

    本笔记将主要聚焦于如何将Spring与Struts2进行整合,以实现更加灵活和可维护的系统架构。 首先,Spring的核心在于其Inversion of Control(IoC)容器,也称为依赖注入容器。它负责创建对象并管理它们之间的关系,...

    马士兵spring学习笔记

    ### 马士兵Spring学习笔记知识点汇总 #### 一、面向接口编程(面向抽象编程) **概念:** 面向接口编程是指在设计系统时,尽量通过接口来定义各个组件之间的交互方式,而不是直接依赖于实现类。这种方式使得系统...

    spring框架案例学习文档笔记

    ### Spring框架案例学习文档笔记知识点总结 #### 第一课:面向抽象编程 ...以上是对“spring框架案例学习文档笔记”主要内容的详细总结和扩展,旨在帮助读者更好地理解和掌握Spring框架的相关知识点。

    spring笔记

    1. 简化企业级开发:Spring 封装了多种企业级服务,提供了更便捷的访问方式,通过IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得编程更加简洁。 2. 设计良好...

    spring学习笔记

    本篇笔记主要涉及Spring的基础知识,包括如何实例化Spring容器、配置schema、处理bean的同步问题以及定制bean的生命周期行为。 首先,Spring容器的实例化有两种常见方式。第一种是通过`ClassPathApplicationContext...

    spring2.5 学习笔记

    ### Spring2.5 学习笔记关键知识点概览 #### 面向抽象编程与Spring框架 面向抽象编程是Spring框架的核心理念之一,它强调通过接口而非具体实现来进行编程,从而提高了系统的灵活性和可扩展性。在Spring中,可以...

    Spring 配置文件 和详细笔记

    在本文中,我们将深入探讨Spring配置文件的相关知识点,以及如何有效地使用它们。 1. **XML配置文件** - **基本结构**:Spring的XML配置文件通常以`&lt;beans&gt;`元素作为根元素,其中包含多个`&lt;bean&gt;`元素,每个`...

    spring个人笔记,很好的哦

    Spring 框架是Java开发中广泛使用的轻量级框架,它简化了对象的创建、管理以及依赖注入。本文将深入探讨Spring的核心概念和配置,包括依赖库、配置文件、对象管理、作用域以及属性编辑器等关键点。 首先,Spring...

    Spring学习笔记

    1. **依赖注入**:Spring的核心特性之一,它允许开发者声明组件之间的依赖关系,而不是硬编码这些依赖。通过XML配置文件或注解,Spring可以在运行时自动装配Bean,简化了对象的创建和管理,提高了代码的可测试性和可...

    Spring In Action笔记100例

    ### Spring In Action笔记100例精要解析 #### 1. `&lt;ref&gt;`标签中的`bean`, `local`, `parent`三个属性的区别 在Spring框架中,`&lt;ref&gt;`标签用于表示一个对象引用,通常用来注入另一个Bean。该标签包含三个重要的属性...

    spring学习笔记(有代码有注解解释)

    ### Spring学习笔记(有代码有注解解释) #### Spring框架两大核心机制——IoC与AOP ##### IoC(控制反转)/DI(依赖注入) **IoC** 是 Inversion of Control 的缩写,意为“控制反转”。而 **DI**(Dependency ...

    Spring学习笔记之二“属性注入”

    在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...

    spring框架案例学习文档笔记.pdf

    《Spring框架案例学习文档笔记》是对Spring框架深入学习的重要参考资料,涵盖了从基础概念到实际应用的多个方面。本文档主要围绕面向抽象编程、JDOM的基本使用、Spring功能模拟、Spring运行环境搭建,以及核心特性...

    Spring 学习笔记

    7. **自动装配**:使用`autowire`属性,可以让Spring容器自动将匹配的bean注入到指定的位置,进一步简化了配置。 通过上述步骤,我们可以看到Spring框架如何通过其强大的功能,帮助开发者构建出结构清晰、易于维护...

Global site tag (gtag.js) - Google Analytics