DAO通常应该具有哪个范围

时间:2008-10-14 12:50:59

标签: prototype dependency-injection singleton dao

毫无疑问,dao不会持有任何州。

但是,为了最容易访问该类,使用原型(每次都是新的)还是单例更好?

简单的对象创建对dao来说很便宜..它通常只包含sessionfactory, 从单身人士列表中访问对象可能同样昂贵。

澄清:这个问题的焦点是,如果对daos的范围有一个共同的约定。

3 个答案:

答案 0 :(得分:3)

如果你的问题是关于架构,我会选择将DAO作为工作单元或您正在进行的交易。 降低 跨交易污染线程问题的可能性。

如果您的问题是关于效果,那么答案就在分析器中,这为您的特定提供准确数字工作量

答案 1 :(得分:2)

答案 2 :(得分:0)

我得出的结论是,没有“完美”的方法来决定这一点。单例范围很可能是在Web应用程序中执行此操作的错误方式,因为您将有不同的会话 - 每个请求一个。所以在webapp中 - 请求范围可能是正确的答案,但前提是您只在请求中而不是在后台任务中使用它。原型范围是可行的 - 但前提是你没有在那里保存复杂的数据。