随笔分类 - spring参考手册
摘要:6.8 容器扩展点 通常,应用程序开发人员不需要实现ApplicationContext子类。反而,可以通过专门的集成接口的实现以插件形式来扩展Spring IoC容器。接下来的几节将介绍这些集成接口。 6.8.1 使用BeanPostProcessor定制Bean BeanPostProcesso
阅读全文
摘要:6.7 Bean的继承 bean的定义可以包含许多配置信息,包括构造函数参数,属性值和容器特定的信息,例如初始化方法,静态工厂方法名称等。子bean的定义从父定义继承配置数据。子定义可以根据需要覆盖某些值或添加其他值。使用父子bean的定义可以节省大量的输入。实际上,这是一种模板形式。 如果以编程方
阅读全文
摘要:6.6.3 其他Aware接口 除了上面讨论的ApplicationContextAware和BeanNameAware之外,Spring还提供了一系列Aware接口,允许bean向容器表明它们需要确定的基础依赖。其中最重要的Aware接口总结如下 - 作为一般规则,名称很好地说明了依赖类型:表6.
阅读全文
摘要:6.6.2 ApplicationContextAware和BeanNameAware 当ApplicationContext创建了一个实现org.springframework.context.ApplicationContextAware接口的对象实例时,就为该实例提供了ApplicationC
阅读全文
摘要:6.6自定义Bean的特性 6.6.1生命周期回调 要与容器的bean生命周期管理进行交互,可以实现Spring的InitializingBean和DisposableBean接口。对于前者,容器会调用afterPropertiesSet(),对于后者,容器会调用destroy()以允许bean在初
阅读全文
摘要:6.5.5 自定义(custom)作用域 Bean的作用域是可扩展的;您可以定义自己的作用域,甚至重新定义现有作用域,尽管后者被认为是不好的做法,您无法覆盖内置的单例和原型作用域。 要将自定义作用域集成到Spring容器中,需要实现org.springframework.beans.factory.
阅读全文
摘要:6.5.4 请求(request)、会话(session)和全局会话(global session)作用域 请求,会话和全局会话作用域仅在您使用Web的Spring ApplicationContext实现(例如XmlWebApplicationContext)时可用。如果将这些作用域与常规的Spr
阅读全文
摘要:6.5.3依赖于原型Bean的单例Bean 当您使用具有依赖于原型bean的单例bean时,请注意在实例化时解析依赖项。 因此,如果将原型作用域的bean注入到单例作用域的bean中,则会实例化一个新的原型bean,然后将依赖注入到单例bean中。原型实例是唯一提供给单例作用域bean的实例。 但是
阅读全文
摘要:6.5.2原型(prototype)作用域 部署非单例的、原型Bean,会导致每次请求Bean实例时,都会返回一个新的实例。也就是说,bean被注入另一个bean,或者通过对容器的getBean()方法调用来请求它。通常来说,对所有有状态bean使用原型作用域,对无状态bean使用单例作用域。下图说
阅读全文
摘要:6.5.1 单例(singleton)作用域 定义为单例作用域的Bean,在Spring容器中只会存在一个实例,这个实例是共享的,所有匹配这个Bean的请求,Spring容器返回此共享的实例。换句话说,当您定义bean定义并将其作用域设置为singleton时,Spring IoC容器只会创建该be
阅读全文
摘要:6.1 Bean的作用域 当你创建一个Bean的定义,你就为这个Bean定义的类创建了一个配方。Bean的定义是一个配方的想法是重要的,因为这意味着,你可以通过这个配方创建许多对象实例。 您不仅可以控制要插入到从特定bean定义创建的对象的各种依赖项和配置值,还可以控制从特定bean定义创建的对象的
阅读全文
摘要:6.4.6 方法注入 在大多数应用程序场景中,容器中的大多数bean都是单例。 当单例bean需要与另一个单例bean协作,或者非单例bean需要与另一个非单例bean协作时,通常通过将一个bean定义为另一个bean的属性来处理依赖关系。 当bean生命周期不同时会出现问题。假如单例Bean A需
阅读全文
摘要:6.4.5 自动装配 Spring容器可以在协作bean之间自动建立关系。你可以允许Spring通过检查ApplicationContext的上下文,自动为你的bean解析协作者(其他bean)。自动装配具有以下优点: 自动装配可以显著减轻指定属性或构造参数的需求量; 自动装配可以随着你对象的演化而
阅读全文
摘要:6.4.4 延迟初始化的bean 默认情况下,ApplicationContext实现会迫切地创建和配置所有单例bean,作为初始化过程的一部分。普遍情况下,这种预先实例化是合适的,因为配置或周围环境的错误是可以立即被发现的,而不是几小时甚至几天后才发现。如果不希望出现这种行为的话,可以通过将bea
阅读全文
摘要:6.4.3 depends-on的使用 如果bean是另一个bean的依赖项,常常意味着将一个bean设置为另一个bean的属性。 典型地,你可以使用基于XML的配置元数据中的<ref />元素来完成此操作。但是,有时bean之间的依赖关系不那么直接;例如,需要触发类中的静态初始化程序,像数据库驱动
阅读全文
摘要:6.1.1 细节上的依赖注入和配置 如上一节所述,你可以将bean属性和构造函数参数定义为对其他托管bean(协作者)的引用,或者作为内联定义的值。为此,Spring的基于XML的配置元数据支持其<property />和<constructor-arg />元素中的子元素类型。 <property
阅读全文
摘要:6.4 依赖 典型的企业应用程序不包含单个对象(或Spring用法中的bean)。 即使是最简单的应用程序也有一些对象可以协同工作,以呈现连贯的应用程序给最终用户看。下一节将介绍如何从定义多个独立的bean,到对象协作取得统一目标的完全实现的应用程序。 6.4.1 依赖注入 它是通过对象定义它们的依
阅读全文
摘要:6.3 Bean概述 Spring IoC容器管理一个或多个bean。这些bean是使用你提供给容器的配置元数据去创建的,例如,以XML <bean />定义的形式。 在容器内部,这些bean的定义以BeanDefinition对象呈现出来,其中包含了(以及其他信息)以下元数据: 限定包的类名:典型
阅读全文
摘要:6.2 容器概述 代表Spring IoC容器的org.springframework.context.ApplicationContext接口负责实例化、配置和组装上述bean。容器通过读取配置元数据来获取有关要实例化,配置和组装的对象的指令。以XML,Java注释或Java代码形式呈现配置元数据
阅读全文
摘要:第三部分 核心技术 这部分参考文档涵盖的这些技术是Spring Framework绝对重要的。 其中最重要的要数Spring框架的控制反转(IoC)容器。深入剖析Spring框架IoC容器之后,紧接着要介绍的是Spring面向切面编程(AOP)技术。Spring框架拥有自己的AOP框架,从概念上很容
阅读全文


浙公网安备 33010602011771号