请教大家一个问题。
我们知道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对象
------解决方案--------------------
只要不是多个线程间共享变量,完全不必考虑线程问题!