【问题标题】:Why does Spring have class JdbcDaoSupport, but no analagous class JmsSupport?为什么Spring有类JdbcDaoSupport,却没有类似的类JmsSupport?
【发布时间】:2011-07-16 19:45:21
【问题描述】:

为什么Spring Framework 有类JdbcDaoSupport 需要DataSource 并在内部创建JdbcTemplate,但没有类似的类JmsSupport 可能需要JMS ConnectionFactory 并创建一个@ 987654327@?

据我了解,JdbcDaoSupport 类的目的是消除应用程序上下文中JdbcTemplate 的冗余实例(每个DataSource 实例一个)。相反,容器创建应用程序 DAO 的实例,每个实例都派生自 JdbcDaoSupport,接受唯一的 DataSource,并将此 DataSource 提供给 JdbcDaoSupport 父实例,后者又将其提供给其内部 JmsTemplate .

为什么 Spring 不提供类似的类 JmsSupport 来减少应用程序上下文中 JmsTemplate 实例的数量?

【问题讨论】:

    标签: java spring spring-jdbc spring-jms


    【解决方案1】:

    JdbcDaoSupport 只不过是JdbcTemplate 的用户,它还扩展了DaoSupport。它为 JDBC 提供了 DAO 设计模式的基本实现,就像其他类为 Hibernate、JPA 等所做的那样。

    很多人不使用 DAO 范式;相反,他们定义了一个单例JdbcTemplate,将其直接注入到他们的服务层中。

    对于 JMS,据我所知,没有像 DAO 这样的通用设计模式,并且“JmsTemplate 的用户”没有其他可能的变体。你应该使用单例JmsTemplate:没有更多的东西了。

    【讨论】:

    • 感谢您的回答。 Spring in Action 是我关于 Spring 的主要信息来源,没有提及您提出的观点。
    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2018-09-22
    • 2019-11-23
    • 1970-01-01
    • 2016-10-25
    • 2019-08-14
    相关资源
    最近更新 更多