Spring 如何保证 Controller 并发的安全
1、一般情况下,如果用Spring MVC 的Controller时,尽量不在Controller中使用实例变量。这样可以很大程度保证线程安全性了。
2、但是若Controller使用的是单例模式,且Controller中有私有变量巳呀屋饔,所有request都访问同一个Controller时,这里的私有变量就是共用的,也就是说某个request中如果修改了这个变量,那么在别的请求中也可读到这个修改的内容。
3、首先,在使用Spring开发项目时默认情况下Controller、Service、DAO都是单例模式。
4、其次需要每次都要创建新的Controller,同时Spring的配置文件中要将Controller的作用域声明为原型(prototype)
5、此外,在控制器中要使用ThreadLocal变量
6、通常每个request都是单独的Process,即使同一时间访问同一个控制器对象,只要未修改控制器对象,就不需要做同步处理。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:81
阅读量:50
阅读量:52
阅读量:62
阅读量:39