Struts2的Action是单例还是多例?
Spring的controller默认是单例还是多例?
1、默认单例
SpringMVC默认是单例的。与Struts2不同,SpringMVC没有默认处理方法,也就是说SpringMVC是基于方法的开发,都是用形参接收值,一个方法结束参数就销毁了,多线程访问都会有一块内存空间产生,里面的参数也是不会共用的。由于SpringMVC默认使用了单例,所以Controller类中不适合定义属性,只要controller中不定义属性,那么单例完全是安全的。单例模式可以提高SpringMVC性能,不需要每次相应请求都创建一个对象。
此外,Spring的Ioc容器管理的bean默认是单实例的。
2、多例
在特殊情况,需要在Controller类定义属性时,单例肯定会出现竞争访问,需要在类上面加上注解@Scope(“prototype”)改为多例的模式。
3、Struts2
与SpringMVC不同,Struts2是基于类的属性进行发的,定义属性可以整个类通用。所以Struts2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象。Action类中往往包含了数据属性,例如在页面填写的form表单的字段,Action中有对应的的属性来绑定页面form表单字段。显然如果Action是单实例的话,那么多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。
但是什么有人说Struts2的Action 默认是单例的?而且还可以进行配置呢?
因为在和Spring一起使用的时候,Action交给Spring进行管理,默认的就是单例,所以才会有人说Struts2默认是单例的。
所以在Spring整合Struts2开发时,如果需要用使用Struts2多例,就在spring的action bean配置的时候设置scope=”prototype”。
---------------------
作者:程裕强
来源:CSDN
原文:https://blog.csdn.net/chengyuqiang/article/details/78776767
版权声明:本文为博主原创文章,转载请附上博文链接!
相关推荐
spring/springmvc/mybatis所需jar包
智慧点餐系统源码/ionic2/springmvc 智慧点餐系统源码/ionic2/springmvc 智慧点餐系统源码/ionic2/springmvc
智慧点餐系统源码/ionic2/springmvc 智慧点餐系统源码/ionic2/springmvc
Spring/SpringMVC/MyBatis整合,可事务回滚
ssm框架脚手架java基础配置文件Spring/SpringMVC/MyBatis eclipse下。ssm框架脚手架java基础配置文件Spring/SpringMVC/MyBatis eclipse下。ssm框架脚手架java基础配置文件Spring/SpringMVC/MyBatis eclipse下。...
一个简单的例子,集成dubbo/zookeeper/springMVC,(zookeeper伪集群)。
全注解零配置Spring/SpringMVC/Mybatis/Swagger,工程里有初始化脚本。
Spring/SpringMVC/Hibernate框架模板,使用mysql数据库
SpringMVC4.0 一个Controller多个方法
springmvc controller
SpringMVC与struts2比较及技术特点
springmvc controller
struts2介绍、和springmvc对比,mybatis介绍和hibernate对比
NULL 博文链接:https://sharpspeed.iteye.com/blog/1098367
springmvc controller
简单介绍下 springMVC 和 struts2 的区别有哪些? 8、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代? 9、 @RequestMapping 注解用在类上面有什么作用? 10、怎么样把某个请求映射到特定的方法上面? ...
直接执行Main方法,或运行在Tomcat
使用maven整合了struts2+spring+mybatis+springMVC四种开源框架,oracle数据库
1、访问地址:http://localhost:8080/springmvc/user/hello?userId=123456 2、配置步骤: 1)引入架包; 2)写controller类 3)写application-yg-servlet.xml 4)配置web.xml 3、不足之处 spring-webmvc-2.5.6...
SpringMVC与struts的区别简单易懂对比理解