Struts2 是基于类的属性进行开发,定义的属性整个类通用,所以说Struts2是多实例。
SpringMVC是基于方法的开发,都是用形参接收值,方法结束参数销毁,多线程访问都会有一块内存空间产生,里面的参数也不会共用。springMVC默认为单例,所以Controllerl类不适合定义属性,只要controller类中不定义属性,那单例就安全。
单例可以提高性能,不需要每次相应请求都创建一个对象。
注:Spring的IOC容器管理的bean默认为单例。
但有很多人说Struts2的action默认为单例的呢?
因为在整合Spring 和Struts2的时候,需要把action交给spring进行管理,而spring默认为单例,所以才会有人这样子说Struts2默认为单例
如果需要使用Struts2为多例,需要在spring的action bean配置的时候设置scope=“prototype”;