码迷,mamicode.com
首页 > 编程语言 > 详细

总结: Struts2 + Spring 的线程安全问题

时间:2014-09-01 12:04:22      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   java   ar   文件   2014   问题   

1. 首先Struts2 本身是安全的

  其原理大概是:Strtus2会获取到用户的http请求,然后负责给每个请求实例化一个Action 对象,但是大家注意,这里的action对象和Struts1里面的action对象完全不是一个概念,struts1里面的action类就是一个servlet类,而这里的action类只是一个普通的java class。这也就是为什么Struts1里面的action是线程不安全的,而struts2里面的action是线程安全的原因。那我们在回头来看看struts2对servlet的处理和struts1有什么不同。看过前面分析的读者肯定知道,struts1的 action对servlet没有进行任何的包装,它是直接实现的Java WEB API 里面的servlet 接口。所以才会有线程安全的问题,但是struts2底层帮我们封装了Servlet,使开发人员不用直接接触Servlet。具体做法是:Strtus2截获servlet请求,然后给每个请求实例化一个Action对象,请求结束之后销毁Action对象。

2. Spring的单例模式 

默认情况下Spring是单例的,所以虽然Struts2本身Action设计没有问题,但是如果在SPring中不做好配置的话,一样会导致线程问题,修改配置文件如下:

bubuko.com,布布扣

经过类似上述的配置,Struts2可以避免大部分的线程安全问题.

总结: Struts2 + Spring 的线程安全问题

标签:style   blog   http   io   java   ar   文件   2014   问题   

原文地址:http://www.cnblogs.com/onmyway20xx/p/3948818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!