Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.5.2 原型(prototype)作用域
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.5.2 原型(prototype)作用域相关的知识,希望对你有一定的参考价值。
6.5.2原型(prototype)作用域
部署非单例的、原型Bean,会导致每次请求Bean实例时,都会返回一个新的实例。也就是说,bean被注入另一个bean,或者通过对容器的getBean()方法调用来请求它。通常来说,对所有有状态bean使用原型作用域,对无状态bean使用单例作用域。
下图说明了Spring原型作用域。数据访问对象(DAO)通常不配置为原型,因为典型的DAO不保持任何会话状态。
以下示例在XML中定义了一个原型Bean:
<bean id="accountService" class="com.foo.DefaultAccountService" scope="prototype"/>
与其他作用域相比,Spring不管理原型bean的完整生命周期:容器实例化,配置,然后组装原型对象,并将其交给客户端,而不再记录该原型实例。 因此,虽然,不管是什么作用域,在所有对象上都会调用初始化生命周期的回调方法,但是,在原型作用域的情况下,不会调用已配置的销毁生命周期的回调方法。客户端代码必须清理原型作用域的对象并释放原型bean所持有的昂贵资源。要想获得Spring容器释放原型域的bean所拥有的资源,请尝试使用自定义bean后处理器,它包含对需要清理的bean的引用。
在某些方面,在Spring容器中,原型作用域bean可以替代Java中new运算符,超过该方面的所有生命周期管理工作就需要由客户端去处理了。 (有关Spring容器中bean的生命周期的详细信息,请参见第6.6.1节“生命周期回调”。)
以上是关于Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.5.2 原型(prototype)作用域的主要内容,如果未能解决你的问题,请参考以下文章
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.4.5 自动装配
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.6.3 其他Aware接口
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.4.1 依赖注入
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.4.2 依赖注入和配置的细节
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.8.2 使用BeanFactoryPostProcessor定制配置元数据