一尘不染

什么时候使用Spring原型作用域?

spring

我想知道我什么时候应该prototype在Spring中准确使用范围?我了解,singleton如果需要Bean,则返回相同的对象实例。

那我们为什么要考虑prototype呢?

举例说明将有助于你理解它的需求。


阅读 710

收藏
2020-04-20

共1个答案

一尘不染

要明确简单的定义:

  • 原型范围=每次注入/查找新对象时都会创建一个。SomeBean()每次都会使用new 。

  • 单例作用域=每次注入/查找相同对象时,都会返回该对象。在这里它将实例化一个实例,SomeBean然后每次都将其返回。

原型bean是在使用时创建的。因此,当你想拥有全状态bean时,有时强烈需要具有原型范围,或者当你不想在bean中缓存任何值时。原型bean可以与一个会话或某个调用相关联。

例:

数据访问对象(DAO)通常不配置为原型,因为典型的DAO不保留任何对话状态;因此,通常不将其配置为原型。对于该作者而言,重用单例图的核心更加容易。

2020-04-20