5

这是一个一般性问题,并非针对我当前的应用程序。

在大流量多线程应用程序中,以下方法是什么:假设有一个 DAO,其中包含updateData更新数据库内部某些数据的方法。

问题:

  1. 拥有该 DAO 类的 Singleton 实例并访问它的方法是一种好方法updateData吗?
  2. 还是我应该每次都创建该 DAO 的新对象并调用该方法updateData
4

3 回答 3

5

是的,为此类服务创建一个单例绝对是个好主意,确保它在被多个线程访问时没有任何与状态相关的问题

我会将此类 DAO 标记为 Spring bean

于 2012-09-25T09:24:22.000 回答
4

最好创建一个 DAO 实例并将其传递给需要它的类的构造函数。我倾向于尽可能避免使用单例,因为除其他外,它们使您的代码难以测试和隐藏依赖项。

看看这个问题的答案:单身人士有什么不好?

于 2012-09-25T09:38:44.787 回答
3

您可以拥有 DAO 的单例实例,您只需确保 DAO 是无状态的,但 DAO 无论如何都应该是无状态的。

于 2012-09-25T09:25:04.553 回答