Spring Bean用于什么原型?

Jac*_*cky 9 singleton spring prototype thread-safety

默认情况下,Spring创建的Bean是单例.它们是线程安全的,因为它们是无状态的.当我们希望Spring创建有状态Bean时,我们需要使用原型范围来定义Bean.我们需要为他们处理线程安全问题.当原型bean注入时,所有无状态Bean都将被污染.所以,我只是无法想象我们可以在哪里使用原型范围.你能给出一些我们可以/需要使用原型Spring Bean的典型场景吗?另外,我们怎样才能消除其他单身豆的有状态污染?

Dav*_*ton 14

使用原型范围的原因有很多,例如,任何时候使用"new"而不是使用单例.每个用户bean,每个请求bean,一个独特的bean集合等等.毕竟,在任何非平凡的应用程序中,你不是使用非单身人士而不是单身人士吗?

单例范围的bean不是线程安全的,因为它们是单例 - 它们必须被编写为线程安全的.它们不会神奇地变得线程安全.Bean的范围,只是,它的范围:它不会使豆适合于特定的范围,这是由开发人员.