我想知道我什么时候应该prototype在Spring中准确使用范围?我了解,singleton如果需要Bean,则返回相同的对象实例。
prototype
singleton
那我们为什么要考虑prototype呢?
举例说明将有助于你理解它的需求。
要明确简单的定义:
原型范围=每次注入/查找新对象时都会创建一个。SomeBean()每次都会使用new 。
SomeBean()
单例作用域=每次注入/查找相同对象时,都会返回该对象。在这里它将实例化一个实例,SomeBean然后每次都将其返回。
SomeBean
原型bean是在使用时创建的。因此,当你想拥有全状态bean时,有时强烈需要具有原型范围,或者当你不想在bean中缓存任何值时。原型bean可以与一个会话或某个调用相关联。
例:
数据访问对象(DAO)通常不配置为原型,因为典型的DAO不保留任何对话状态;因此,通常不将其配置为原型。对于该作者而言,重用单例图的核心更加容易。