我在Spring中有一些应用程序,它在每次请求时都会创建原型bean X(来自工厂)。这个bean X有一些DAO单例,例如Y,Z。和我工作的SomeObject(设置值等)
@Scope(value="prototype")
public class X{
@Autowired
private Y y;
@Autowired
private Z z;
private SomeObject obj;
public void someMethod(){
obj.setProperty();
}
}
这是正确的做法吗?我的意思是,在每个请求中,Spring容器必须搜索那些单例bean并将它们注入原型,是否有效?或者也许最好创建无状态bean并在适当的方法中创建SomeObject实例,然后在我想要使用它时将它传递给函数参数(它不是那么舒服)?
答案 0 :(得分:0)
最好使用单例范围和无状态bean,因为无状态bean是线程安全的。仅当您不能使用无状态时才使用statefull bean。