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。
浙公网安备 33010602011771号