SSH框架项目中的几处疑问
1.struts2 与 spring整合的时候,我的action并没有交给spring管理,但是action里的server类是spring单例注入的。网上有人说action不交给spring管理,action里的server类是实现不了ioc的,但是现在的情况确实是可以注入的,并且我也验证了注入的server类确实是同一个单例。注:我的IOC是用注解来实现。
现在的问题是:action是不是一定非要交给spring管理?为什么我action不交给spring管理,IOC仍然可以注入?并且我验证了产生的action都是prototype类型。
2 如果每次产生的action都是prototype类型,但是里面的serviec类却都是单例,那么如果多个用户,同一时刻调用action里的service类,这个时候是不是存在线程安全的问题?如果存在,怎么解决?
请各位大大帮我解惑啊!,多谢!
------解决方案--------------------action处理类不交给spring,是不能注入的。
service类其实就是个工具类,多个线程就是可以同时访问的。只要不在service中声明全局的变量,是不存在线程安全问题的。
------解决方案--------------------ssh整合是把service和dao交给spring管理。action可以由struts管理也可以由spring管理。这两种写法都不一样。
------解决方案--------------------同意吧。ssh整合时把service和dao交给spring,action交不交给spring不重要。