单例DAO对象可以吗?

Ada*_*Ada 8 java spring dao

考虑以下类的结构:

  1. BaseDAO 使用方法来填充PreparedStatement并从池中获取连接
  2. AccountDAO extends BaseDAOAccount通过JDBC 处理表.这个班是单身
  3. AccountService 女巫调用AccountDAO的方法是这样的: AccountDAO.getInstance().login(name, password).

AccountDAO是一个Spring bean,带有@Transactional插入一些数据的方法的注释.

这个可以吗?我认为单例DAO类可能会导致性能问题.可能最好在服务层类中使用一些弹簧注入?(我是Spring的新手,所以任何建议都会受到关注)

hvg*_*des 15

Spring文档中推荐的方法是将DAO编写为普通类并使用单例范围.如果您的DAO没有状态,这将正常工作.

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes-prototype

第3.4.2节.

如果你使用Spring,你不应该处理准备好的语句等等,除非你做的事情很糟糕.查看JdbcTemplate或HibnerateTemplate.是的,您应该连接Spring以将DAO注入您的服务或您需要使用它们的任何地方.