struts2 中action使用的多例模式,但是service层和dao层用的是单例模式,为什么?

是不是因为service层和dao层中没有状态数据,可以复用,所以单例呢?... 是不是因为service层和dao层中没有状态数据,可以复用,所以单例呢? 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
单身一车行
2015-10-06 · TA获得超过247个赞
知道答主
回答量:36
采纳率:100%
帮助的人:10.9万
展开全部
使用单例和多例的判定条件是并发访问时会不会对类中公共属性进行修改。如果有可能修改,那就最好用多例,否则会出现各种异常情况。回到你的问题,action中一般会有前端对应的属性,这个一般是action的成员变量,如果是单例访问,所有的访问公用一个action实例对象,当然也公用里面的成员变量和方法,在使用成员变量时就有可能出问题了,比如多个请求同时对同一个属性进行修改,那不就乱了?因此在action层采用多例来避免这种情况的发生,而service中公共属性顶多也就有dao的引用,dao中公共属性也就有对数据库包装类或你自定义类的引用,这个引用通常情况下载项目启动时就已经实例化了,访问时只是使用而已,并不涉及到修改这些公共的操作,因此也就不会出现action中的情况,因此使用单例就行了,这样也可以节省系统资源,大概是这样的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式