Java:我们可以将DAO用作Singleton实例吗

Paw*_*wan 5 java singleton dao

这是一个普遍的问题,并不特定于我当前的应用程序。

在繁重的Traffic MultiThreaded应用程序中,应采取的方法是:假设有一个DAO,其中包含一种updateData更新数据库内部某些数据的方法。

问题:

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

Jig*_*shi 5

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

我会将DAO标记为Spring bean

  • DAO可以具有成员变量,但这并不意味着它们具有“状态”。只需确保在调用DAO方法之间这些变量的值不发生变化,并确保使用相同的输入参数两次调用单个方法会返回相同的值。 (4认同)

dog*_*ane 5

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

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