gpt4 book ai didi

java - 拥有单例 DAO 对象可以吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:24 24 4
gpt4 key购买 nike

考虑以下类的结构:

  1. BaseDAO 具有用于创建 PreparedStatement 并从池中获取连接的方法
  2. AccountDAO 扩展 BaseDAO 以通过 JDBC 使用 Account 表。这个类是单例的
  3. AccountService 像这样调用 AccountDAO 的方法:AccountDAO.getInstance().login(名称,密码)。

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

这样可以吗?我认为单例 DAO 类会导致性能问题。在服务层类中使用一些 spring 注入(inject)可能更好?(我是 Spring 的新手,所以任何建议都会被采纳)

最佳答案

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 注入(inject)您的服务或您需要使用它们的任何地方。

关于java - 拥有单例 DAO 对象可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com