众所周知,Struts2的Action因为每次请求都会创建一个实例,所以不存在线程不安全的问题。。
但是Sprng MVC的Controller我是用的扫描的方式,在servletname-servlet.xml配置的,Spring IOC搞的Bean默认是单例模式吧?
我这么扫描Controller是不是就是单例的,会不会出现跟Servlet一样使用成员变量的线程安全问题????
如果加@Scope("prototype")其实可以解决,工作中大家都是怎么解决的?会不会影响性能??????
------解决思路----------------------
你的理解是对的,Spring MVC 和 Servlet 一样,都不是线程安全的, 所以在使用成员变量的时候一定要注意,以免出现意外。
不要使用可变的成员变量,当然可以使用service,因为service基本上都是不可变的,因为service除了各种dao,也没有可变的成员变量。