多语言展示
当前在线:1627今日阅读:23今日分享:25

spring原型范围

spring原型范围
工具/原料
1

spring

2

IntelliJ

方法/步骤
2

也就是说,bean被注入另一个bean,或者通过 getBean() 对容器的方法调用来请求它。通常,您应该对所有有状态bean使用原型范围,对无状态bean使用单例范围。

3

下图说明了Spring原型范围:

4

数据访问对象(DAO)通常不配置为原型,因为典型的DAO不会保持任何会话状态。我们更容易重用单例图的核心。

5

以下示例将bean定义为XML中的原型:

6

与其他范围相比,Spring不管理原型bean的完整生命周期。容器实例化,配置和组装原型对象并将其交给客户端,而没有该原型实例的进一步记录。因此,尽管无论范围如何都在所有对象上调用初始化生命周期回调方法,但在原型的情况下,不会调用已配置的销毁生命周期回调。

7

客户端代码必须清理原型范围的对象并释放原型bean所拥有的昂贵资源。要使Spring容器释放原型范围的bean所拥有的资源,请尝试使用自定义bean后处理器,它包含对需要清理的bean的引用。

8

在某些方面,Spring容器关于原型范围bean的角色是Java new 运算符的替代品。超过该点的所有生命周期管理必须由客户端处理。

推荐信息