当前位置: 代码迷 >> Java Web开发 >> web项目的线程有关问题
  详细解决方案

web项目的线程有关问题

热度:85   发布时间:2016-04-16 22:25:04.0
web项目的线程问题
请教大家一个问题。

我们知道struts2的action是多例
那是不是说每一个请求就是一个线程呢,再为每一个线程分配一个新的action实例

但是在框架ssh中srping给的又是单例

那么情况就是

请求1 -->                                  -->   线程1  action1
                             tomcat                                                        (spring) BO层 --> dao层
请求2  -->                                -->    线程2     action2

那么就是说,BO层和Dao层,其实是共享的,对于web项目来说。

那么这里不会产生线程问题吗。
比如说保存,我一个请求1要保存A,到了dao层,sql拼好了是保存A,这里服务器运行到这里停止,去处理另一个请求
然后请求2进来了,保存B,到了dao层,拼好sql

这样子的话,因为dao是共享的,那么这里,请求2不是把请求1的sql给复盖了吗。

不知道我说清楚了没有。
------解决方案--------------------
spring默认是单例的,在开发过程中也可以把spring通过注解配置成@Scope(value = "prototype"),可以保证 当有请求的时候 都创建一个spring对象

------解决方案--------------------
只要不是多个线程间共享变量,完全不必考虑线程问题!
  相关解决方案