java ssh开发时为什么action里的属性的bean作用域是prototype而dao层的bean作用域是singleton?

 我来答
syxwaxlyw
2012-12-05
知道答主
回答量:24
采纳率:0%
帮助的人:13.7万
展开全部
因为你每次请求的Action返回的状态未必相同,应该用prototype。但是像basedao这样在一个只会存在一个共享的bean时,就用singleton 。(singleton意味对数据库的访问只能单线程,才能保证数据库数据的一致性,而网络访问由于每一个时间都不一样,所以struts的action应该用prototype保证你的访问返回的是你的当前访问状态,而且当某一线程出现问题时不影响其它线程或设置singleton="false")
其次,dao,service,使用单例。struts的action不使用单例。

dao层用hibernate,用来与数据库交互 service 用spring,用来注入,控制器 用struts,spring默认设置为singleton。
当然,也可以设置scope="session",也能避免web中action的并发问题,只为当前用户创建一次bean,直至session消失。在这种情况下,对当前用户而言,bean是有状态的。好处就是少创建bean的实例,有那么一点点性能的提升
zhengshao2326
2012-12-05 · 超过16用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:42.1万
展开全部
应该本次请求结束吧,除非你放入session中 或者application中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式