Service、Dao为单例,Action不为单例

大概应该是这样的吧。spring

由于Spring默认的是单例模式,将struts交给spring管理,struts中须要的action应该是多实例的,因此须要在配置action的时候加入scope="prototype"来保证每个请求有一个单独的action来处理,避免struts中action的线程安全问题。安全

为何须要action为多实例?我本身的见解!!!!!!!!!jvm

由于action中须要成员变量来传递请求的参数并保存这些参数,每个客户端发来的请求参数是不一样的,使用因此须要多实例的成员变量来保存不一样用户的参数。spa

那为何service能够为单实例呢?看了网上的说法大概是这样的吧!!!!!!!!prototype

service中不用成员变量来保存用户的参数,且线程

对同一个对象,若是同时有两个线程调用这个对象的同一个方法,那么jvm会自动开两个栈用以存储这个方法内部的变量,因此没有同步问题对象

相关文章
相关标签/搜索