【问题标题】:What are template classes in Spring Java? Why are they called templates? For example jdbc-template, jms-template etcSpring Java 中的模板类是什么?为什么它们被称为模板?例如 jdbc-template、jms-template 等
【发布时间】:2014-01-31 20:15:15
【问题描述】:

我是 Java 新手。我只编程了大约一年。 Spring 使用模板是什么意思?在 Spring 中,有 jdbc-templates、jms-templates 等。java 中的模板类是什么?它们是一种特殊的设计模式还是什么?

提前谢谢你。

【问题讨论】:

  • Spring 模板基于Template Method design pattern
  • @OriDar, JdbcTemplate 是模板方法设计模式的not an example。该模式需要子类化,而JdbcTemplate 的文档指出,“应该没有必要对其进行子类化。

标签: java spring jdbctemplate jmstemplate


【解决方案1】:

它们被称为模板,使用Template method pattern

基本上这个想法是在抽象类或超类中定义做某事所需的操作,然后实现一个使用先前定义的操作的类。

在spring的情况下,允许自动完成总是需要为特定目的完成的操作,(打开连接,获取池,翻译,执行,关闭连接),然后用户只需要调用方法而无需担心关于之前的任务。

【讨论】:

  • 之所以选择这个答案,是因为您提到了抽象类。现在,如何处理样板代码是有意义的。通过抽象类是一种方式。谢谢
  • JdbcTemplate 是模板方法设计模式的not an example。该模式需要子类化,而JdbcTemplate 的文档指出,“不应该对其进行子类化。”这个答案是错误的。
【解决方案2】:

Spring 模板是一种消除正确使用许多 API(如 JDBC、JMS、事务等)所需的样板代码的方法。样板代码是为了正确使用 API 而需要编写的设置和错误处理代码.

例如在 JDBC 中,为了执行查询,模板将处理连接的所有设置、准备语句、查询完成后释放连接、处理异常,所有这些都非常重要且易于处理搞错了。

您只需将要运行的查询传递给模板,其余的由模板处理。

blog post 为例,在使用 spring JDBC 模板时,在纯 jdbc 中执行查询的 80 行程序减少到 20 行。

【讨论】:

  • 这是如何实现的? 80 行是如何缩减到 20 行的?例如,您能否解释一下我如何创建自己的模板的实现细节?
  • 看看上面博客文章中的链接(这个答案),它有一个很好的例子
  • 你看过上面博文中的例子了吗,它回答了你的问题吗?
【解决方案3】:

这些类用于简化 功能,让低级问题不谈,例如连接到数据库(所有脏活都由jdbcTemplate 类)。

JdbcTemplate 简化了 JDBC 的使用并有助于避免常见错误。它执行核心 JDBC 工作流,让应用程序代码提供 SQL 并提取结果。此类执行 SQL 查询或更新,在 ResultSets 上启动迭代并捕获 JDBC 异常并将它们转换为通用的、信息更丰富的异常层次结构。

您唯一需要实际实现的是CallBack 方法。 只实现回调方法让你的代码干净。您唯一关心的是执行您的业务逻辑。

【讨论】:

  • 谢谢edubriguenti。什么是回调方法?您能否提供一个与 jdbs-templates 相关的示例?谢谢
  • 回调方法是框架调用的方法。您只是实现它们(通常是因为您实现了一个接口),但实际上是在适当的时候调用该方法的框架或 API。
猜你喜欢
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多