将原型与单身混合

时间:2015-04-01 09:36:26

标签: java spring design-patterns

我在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实例,然后在我想要使用它时将它传递给函数参数(它不是那么舒服)?

1 个答案:

答案 0 :(得分:0)

最好使用单例范围和无状态bean,因为无状态bean是线程安全的。仅当您不能使用无状态时才使用statefull bean。