`
flm_llx
  • 浏览: 62528 次
  • 性别: Icon_minigender_1
  • 来自: 应县
社区版块
存档分类
最新评论

spring:简单的属性参考

    博客分类:
  • java
阅读更多
在定义文件(XML配置文件)中定义Bean时,可以直接指定一个字符串值给属性值,如果在Bean定义文件中已经有一个定义的Bean实例,则可以直接让某个属性参考至这个实例。

有以下几种比较常用的方式:

1.使用<ref>直接指定参考至其他的Bean实例
2.使用<bean>标签并指定"class"属性来指定依赖对象
3.隐式自动绑定,分别是byType,byName将某个Bean实例绑定至其他Bean对应的属性
4.在构造方法上也能进行自动绑定
5.也可以设定"autodetect",一切交给Spring判定,自动完成。

以上几种注入方式注意事项如下:

1. <ref>方式:

    <ref bean="XXX"/>,XXX填写的字符需是你要依赖的bean文件中的id名字,有些书上也叫Bean别名。如<bean id="XXX" class="YYYY"/>


2. <bean>方式:

    前提条件必须是,这个Bean的实例只被某个属性参考一次,之后在定义文件中不再被其它Bean的属性所参考,那么可以直接在属性定义时使用<bean>标签,并仅需指定其"class"属性即可,如:
...
<property name="zzz">
    <bean class="Xxx.Yyy.Zzz">
</property>
...
    Spring的IoC容器会自动生成Zzz实例,并透过setZzz()方法将Zzz实例设定给需要实现的Bean。


3.1 byType方式:

    在需要实现的Bean中,在<bean id="..." class="..." autowire="byType"> ,无需再指定属性参考而编写一个property,Spring会根据需要实现的Bean的setZzz()方法所接受的类型,来判断在Bean定义文件中是否定义有类似的类型对象,并将之设定给需要实现的Bean的setZzz()。使用自动绑定时,如果"byType"无法完成绑定,则抛出 org.springframework.beans.factory.Unsatisfied-DependencyException的异常。


3.2 byName方式:

    使用byName方式,类似的在<bean id="..." class="..." autowire="byName"> ,但是需要注意的是Spring要根据Bean定义时的"id"属性上指定的别名与Setter名称是否一致来进行自动绑定。如setDate()方法来完成依赖注入,必须修改一下需要注入的Bean的id值为"date"名称,即名字要相同。如果使用"byName"无法完成自动绑定,则对应的Setter仅维持未绑定状态。


4. constructor方法

    在构造方法上也可以尝试进行自动绑定。本人不是很推荐使用,因为这样很容易产生混乱,一边使用Type 3 Dependency Injection一边使用Type 2 Dependency Injection,使代码易读性下降不利于代码维护。有兴趣的朋友可以翻阅相关资料尝试。


5.autodetect方法

    类似第3方法,<bean id="..." class="..." autowire="autodetect"> ,这时候Spring会尝试使用如"autowire"被设定为"constructor"来处理依赖关系的建立,如果没有完成依赖关系建立,则再尝试使用如"autowire"被设定为"byType"的方式来建立依赖关系。这是比较傻瓜的一种自动检测方式,虽然方便但是不推荐使用,因为也是容易降低代码的可读性。




相关

    Spring自带一种依赖关系检测机制,由于很难从定义文件中看清楚是否每个属性都完成了设定,为了确定某些依赖关系确实建立,可以加入依赖检测,在<bean>标签使用时添加dependency-check="xxx",有四种检测方式:"simple"、"objects"、"all"、"none"。

    "simple":只检查简单的属性是否完成依赖关系,如原生数据类型或字符串对象
    "objects":检查对象类型的属性是否完成依赖关系
    "all":检查全部的属性是否完成依赖关系
    "none":默认值,不检查依赖关系

使用自动绑定时加入以来检测,如有未完成的依赖关系,则执行程序抛出 org.springframework.beans.factory.UnsatisfiedDependencyException异常。 

分享到:
评论

相关推荐

    spring 属性参考与自动绑定

    《Spring属性参考与自动绑定详解》 在Java的Spring框架中,属性参考和自动绑定是两个重要的概念,它们为开发者提供了灵活且强大的依赖注入机制。本文将深入解析这两个概念,并通过示例代码来阐述其工作原理。 ### ...

    SPRING:aspect和advisor区别

    - 在这个例子中,`logAspect`是一个切面,它包含了三种不同类型的Advice(Before、After、Around),并通过`pointcut`属性定义了这些通知适用于哪些方法调用。 #### 三、Advisor的概念解析 1. **定义**: - `...

    Spring表达式语言中文参考手册.docx

    ### Spring 表达式语言 (SpEL) 中文参考手册概览 #### 一、Spring SpEL 概念与用途 Spring SpEL(Spring Expression Language)是一种强大的表达式语言,用于处理运行时查询和操作对象图。SpEL 的设计目标是提供一...

    spring2中文开发参考手册

    《Spring2中文开发参考手册》是一本详尽的指南,专为使用Spring框架进行软件开发的程序员设计。这本书深入探讨了Spring框架的核心概念、新特性,以及如何利用XML配置和Spring MVC来构建高效的应用程序。以下是对这些...

    Springframework开发参考手册chm格式

     Spring Framework 开发手册 chm,一份对Spring特性的参考指南,内容涵盖Spring概述、使用场景、Spring2.0新特性、面向切面编程、中间层、WEB层、校验,数据绑定,BeanWrapper,与属性编辑器、使用Spring进行面向...

    SpringMongodb参考文档.docx

    1.了解Spring 2.了解NoSQL和文档数据库 3.要求 4.其他帮助资源 4.1。支持 4.1.1。社区论坛 4.1.2。专业支持 ...Spring Data MongoDB 2.1中的新...属性表达式 7.4.4。特殊参数处理 7.4.5。限制查询结果 7.4.6。流式查询结果

    spring2.0中文开发参考手册.chm.zip

    《Spring 2.0 中文开发参考手册》是针对Java开发者的重要参考资料,它全面地介绍了Spring框架2.0版本的核心特性和使用方法。Spring作为一款轻量级的Java企业级应用框架,以其强大的依赖注入(Dependency Injection,...

    spring开发参考手册

    《Spring开发参考手册》是Spring框架开发者不可或缺的资源,它提供了详尽的Spring应用开发指南。这份手册以CHM(Microsoft Compiled HTML Help)格式呈现,易于查阅和使用。以下是对手册中关键知识点的概述。 1. **...

    Spring2.5-中文参考手册(这是个chm格式的文档)

    这本《Spring2.5-中文参考手册》涵盖了以上所有内容的详细解释,包括每个特性的使用方法、示例代码以及问题解决方案。对于希望深入了解Spring框架,尤其是2.5版本的开发者来说,是一份宝贵的资源。尽管版本较旧,但...

    spring framewok 4参考文档

    Spring Framework是Java领域中一个非常重要的开源框架,自2003年问世以来,一直是Java开发者使用最为广泛的...通过阅读Spring Framework的参考文档,开发者可以了解到框架的最新动态,为开发工作提供坚实的技术支持。

    Spring2.5.2_中文参考手册CHM

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、松耦合...总之,Spring 2.5.2中文参考手册是学习和使用Spring框架的重要资源,无论你是初学者还是资深开发者,都应该充分利用这份文档,提升自己的技能和效率。

    spring-boot中文参考指南

    ### Spring Boot中文参考指南知识点概览 #### 一、Spring Boot 概述 - **Spring Boot** 是一种简化新Spring应用的初始搭建以及后续开发的框架。它旨在通过提供默认配置来简化设置过程,使开发者能够专注于应用的...

    Spring 开发参考手册

    ### Spring 开发参考手册知识点详解 #### 一、Spring 概览 **Spring** 是一个开源框架,最初是由 Rod Johnson 创建的,旨在简化企业级 Java 应用程序的开发过程。Spring 提供了一种轻量级的方式来管理和配置 Java ...

    Spring2.5.2-中文参考手册.chm

    4. **Bean的定义与管理**:在Spring中,业务对象被称为Bean,它们可以在配置文件中定义,包括其类、属性、初始化方法、依赖关系等。Spring容器负责实例化、配置和管理这些Bean。 5. **数据访问集成**:Spring提供了...

    Spring.NET框架参考文档

    10. **配置与元数据**:Spring.NET使用XML或基于属性的配置文件来定义对象及其依赖关系,也可以利用.NET的特性元数据来声明依赖。这使得配置灵活且易于理解。 通过深入学习“Spring.NET框架参考文档”,你可以全面...

    Spring Boot参考指南.pdf

    ### Spring Boot参考指南知识点概述 #### 一、Spring Boot 文档概述 - **关于本文档**:本指南旨在提供Spring Boot全面的使用手册,适用于初学者到进阶开发者。 - **获取帮助**:介绍了如何获得Spring Boot相关的...

    spring.net参考文献

    8. **配置和元数据**:Spring.NET使用XML文件进行配置,但也可以使用.NET属性和C#代码进行配置。这种灵活性使得开发者可以选择最适合项目需求的配置方式。 9. **企业服务支持**:Spring.NET集成了对JMS、JMX、JPA等...

    Spring Boot参考指南(2.0.1)中文版.pdf

    Spring Boot 参考指南 Spring Boot 是一个基于 Spring 框架的框架,旨在简化 Spring 应用程序的开发过程。Spring Boot 提供了一些默认配置和 starters,以便快速构建生产级别的应用程序。 Spring Boot 的特点 1....

Global site tag (gtag.js) - Google Analytics