Java:我们可以使用DAO作为Singleton实例

时间:2012-09-25 09:20:48

标签: java singleton dao

这是一个一般性问题,并非针对我目前的申请。

在繁忙的Traffic MultiThreaded应用程序中,执行以下操作的方法是:假设有一个DAO,其中包含一个方法updateData来更新数据库中的某些数据。

问题:

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

3 个答案:

答案 0 :(得分:4)

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

我会将这样的DAO标记为Spring bean

答案 1 :(得分:4)

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

看看这个问题的答案:What is so bad about Singletons?

答案 2 :(得分:3)

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