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 运算符的替代品。超过该点的所有生命周期管理必须由客户端处理。
上一篇:疫苗接种前需做哪些准备
下一篇:接种不合格疫苗怎么办