zqrx.net
当前位置:首页 >> springmvC是线程安全的吗 >>

springmvC是线程安全的吗

不是,springmvc默认是单例模式,所以避免使用成员变量其实是不是线程安全并不重要,要想让不安全的场景发生,需要你主动去创造条件,只要别这么干就没事

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等.

Spring MVC默认是单例,所以是线程不安全的,但是由于是可以配置的,你可以把Controller配置成多例(Scope)的,这样就是线程安全的.判断线程安全就是会不会同时有两个或者多个线程访问到一个对象中的某个属性或者方法,如果是单例,就是说两个线程会同时获取一个对象,如果其中一个线程修改了这个对象的属性,但是另外一个对象正在使用这个属性的话,就造成了与预期的结果不一致,这就是线程不安全(我说的比较通俗,不完全).多例的话会给每个线程分配一个对象,多个线程之间互不干扰,所以是线程安全的

springmvc是线程不安全的------------------------------springmvc的controller是singleton的(非线程安全的),这也许就是他和struts2的区别吧和Struts一样,Spring的Controller默认是Singleton的,这意味着每个request过来,系统都会用原有的instance

众所周知,Struts2的Action因为每次请求都会创建一个实例,所以不存在线程不安全的问题..你的理解是对的,Spring MVC 和 Servlet 一样,都不是线程安全的, 所以在使用成员变量的时候一定要注意,以免出现意外.不要使用可变的成员变量,当然可以使用service,因为service基本上都是不可变的,因为service除了各种dao,也没有可变的成员变量.

线程不安全,Spring MVC默认是单例模式,Controller、Service、Dao都是单例所以在使用不当存在一定的安全隐患.Controller单例模式的好处在与: 1. 提高性能,不用每次创建Controller实例,减少了对象创建和垃圾收集的时间 2. 没多例的必要 由于只有一个Controller的实例,当多个线程同时调用它的时候,它的成员变量就不是线程安全的

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等.

Spring MVC默认是单例,所以是线程不安全的,但是由于是可以配置的,你可以把Controller配置成多例(Scope)的,这样就是线程安全的.判断线程安全就是会不会同时有两个或者多个线程访问到一个对象中的某个属性或者方法,如果是单例,就是说两个线程会同时获取一个对象,如果其中一个线程修改了这个对象的属性,但是另外一个对象正在使用这个属性的话,就造成了与预期的结果不一致,这就是线程不安全(我说的比较通俗,不完全).多例的话会给每个线程分配一个对象,多个线程之间互不干扰,所以是线程安全的

controller默认是单例 需要的数据都从方法参数传递 只要不定义类变量 就安全 放心吧

Spring MVC默认是单例,所以是线程不安全的,但是由于是可以配置的,你可以把Controller配置成多例(Scope)的,这样就是线程安全的. 判断线程安全就是会不会同时有两个或者多个线程访问到一个对象中的某个属性或者方法,如果是单例,就是说两个线程会同时获取一个对象,如果其中一个线程修改了这个对象的属性,但是另外一个对象正在使用这个属性的话,就造成了与预期的结果不一致,这就是线程不安全(我说的比较通俗,不完全). 多例的话会给每个线程分配一个对象,多个线程之间互不干扰,所以是线程安全的

网站首页 | 网站地图
All rights reserved Powered by www.zqrx.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com