Bean的作用域singleton与prototype

singleton是默认作用域,在使用singleton时,Spring容器只存在一个可共享的Bean实例。

对需要保持会话状态的Bean,应该使用prototype作用域。在使用prototype作用域时,Spring容易会为每个对该Bean的请求都创建一个新的实例。

那么具体是在什么情况下用singleton,什么情况下用prototype呢?

对于UserDao组件,UserService组件来说,singleton是最理想的选择。比如

class TestService{        

  @Autowired     

  private IUserDAO dao;  

由于它没有实例变量,所以不存在冲突的问题,用默认的单例就可以了

 

而另一段代码

Class TestAction{  

  private int age;  

因为每次请求都会传一个age过来,如果这个Action是一个单例的话,后面请求的age就把前面的覆盖掉了,所以必须设置为prototype。 

posted @ 2020-07-17 21:24  南巷北口  阅读(496)  评论(0)    收藏  举报