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