那么您还应该使用 Spring 的 HibernateTemplate 和/或 JpaTemplate 吗?

工程 | Alef Arendsen | 2007 年 6 月 26 日 | ...

前几天我在 TSS 上读到 Vigil Bose 写的一篇文章,看到其中使用了 HibernateDaoSupport 类。既然这不是从 Spring 使用 Hibernate 的推荐方式了,我想我不如再写一篇博客来谈谈它。

随着 Spring 2.0 的出现,再次直接使用 Hibernate Session API 成为可能。问题在于,在使用 Hibernate 或 Spring 的任何其他基于模板的方法时,放弃使用 HibernateTemplate 是否明智。

使用 Spring XxxTemplates

在 Spring 1.0 中,我们引入了一种革命性的方式来处理抛出受检异常的数据访问 API。Spring 的模板方法与其事务同步管理器以及运行时异常的广泛使用相结合,使得数据访问代码中经常出现的任何 TCFTC(我们在 2005 年创造的术语 try/catch-finally-try/catch 的缩写)完全过时。您可以在下方看到 Spring 模板方法为您所做的事情(包含您原本必须编写的特定代码片段)的简化且并非完全精确的版本。 template.png

获取连接:如果事务同步处于活动状态…

SpringOne '超越显而易见' 演讲的代码示例

工程 | Joris Kuipers | 2007 年 6 月 25 日 | ...

上周在 SpringOne 大会上,Alef 和我做了一个关于如何使用 Spring 处理复杂应用的演讲。这里的复杂性既包括结构层面的复杂性,也包括动态层面的复杂性。关于演讲的结构部分,我在我上一篇博客文章中已经讨论过。动态部分解释了一些可能的解决方案来处理部署环境(测试、验收、生产等)之间的差异。很多人问我是否可以提供我在演讲中进行的演示的源代码。我已将源代码附到这篇博客文章中,并将解释…

批处理的力量

工程 | Rob Harrop | 2007 年 6 月 23 日 | ...

昨天 SpringOne 的最后一节会议上,Dave Syer、Scott Wintermute、Lucas Ward 和 Wayne Lund 都做了关于 Spring Batch 的演讲。我没有实际参加(因为我得早点打车走),但我把头探进去看了一下,再次被大家的兴趣程度震惊了。

回到 JavaOne 大会时,这个解决方案也引起了巨大的兴趣,许多参观者前来展位询问我们关于批处理的问题。

在这个 Ajax 和富互联网应用的世界里,很容易忘记大量(或许是大多数?)大型企业应用都是面向批处理的。批处理…

对 Spring Web Flow 进行负载测试

工程 | Rossen Stoyanchev | 2007 年 6 月 22 日 | ...

对 Web Flow 应用进行负载测试类似于对任何其他 Web 应用进行负载测试——我们将使用负载测试工具模拟不断增加的并发客户端访问级别,以捕获关键的性能统计数据。

对于 Web Flow 的负载测试,有几个重要考虑因素

  1. 负载测试必须维护独立的“Cookie 存储区域”,以便每个客户端请求都能携带独立的 HTTP 会话。
  2. 我们需要一种机制来从初始响应中提取唯一的流程执行密钥,并用它来自定义同一流程会话中的后续请求。

Apache JMeter 是一个开源性能测试工具,可以满足这两方面的考虑。

对于 1) 我们在每个执行 Web Flow 功能的测试组的根部添加一个 HTTP Cookie Manager 元素。Cookie Manager 确保每个模拟的客户端请求都可以有自己的…

Spring Framework 在 WebSphere 上获得认证

工程 | Rod Johnson | 2007 年 6 月 21 日 | ...

SpringOne 大会进展顺利。今年是为期 3 天的展会,比去年多了 1 天,再次看到数百名与会者参加 Spring 大会真是太好了。这次展会我相当放松,因为开幕主题演讲之后我就没有其他会议了,也不需要准备幻灯片。

现在,Adrian 正准备宣布关于 Spring 工具的一项重大消息。实际上,他正在对鸭子类型进行独特的个人解读,我肯定你会听到的…

稍后会详细介绍,但首先我需要分享一下昨天的一些新闻。我很高兴能够宣布我们…

2007 年 6 月 13 日 NL-JUG 会议上演示的代码源

工程 | Alef Arendsen | 2007 年 6 月 14 日 | ...

昨天,Joris 和我在荷兰 Java 用户组做了一个会议。我们做了两次会议,总共有大约 250 人参加。很多人询问我们在会议期间做的演示的代码。附件中您可以找到 AOP 和依赖注入演示的代码。它展示了一个在每次 JDBC 操作之前刷新 Hibernate 会话的简单方面(在生产代码中,这可能不够健壮,但这只是一个开始),它还展示了使用… 配置的 CarPlant 系统(之前在其他会议中演示过,并已附在另一篇博客文章中)。

Spring:企业级 Java 编程事实上的标准

工程 | Adrian Colyer | 2007 年 6 月 13 日 | ...

昨天 GigaSpaces 发布了他们的空间计算架构的最新版本,并为其起了一个新名称:GigaSpaces eXtreme Application Platform (XAP)。引用其新闻稿:

新版本提供了一个完整的中间件平台,用于管理需要高性能并能够横向扩展到数百台机器上的应用的数据、消息和业务逻辑。
然而,公告中引起我注意的部分是这个
作为新产品发布的一部分,GigaSpaces 采用了更简单、非侵入式的编程模型,允许开发者使用普通 Java 对象(POJO)、普通 .Net 对象和普通 C++ 对象编写应用程序。对于 Java 而言,GigaSpaces 通过支持 Spring Framework 来实现这一点,Spring Framework 正迅速成为企业级 Java 编程的事实标准
看到这样的认可真是太好了,我对这个陈述唯一想做的微小改动是去掉“迅速成为”的部分:Spring Framework 企业级 Java 编程的事实标准。

像这样的公告是良性循环的一部分(例如 Geoffrey Moore 在他的书《大猩猩游戏》中描述过),Spring Framework 的普及性使得供应商非常愿意在他们的产品中提供 Spring Framework 集成,这反过来又提高了 Spring 的整体价值。这当然有助于使 Spring 更加普及…

关于开源的胡言乱语

工程 | Rod Johnson | 2007 年 6 月 12 日 | ...

关于开源的胡言乱语是一个竞争激烈的领域。然而,我刚刚看到了一篇提升(还是降低?)门槛的文章:OpenLogic 博主的一篇题为 你的时间值多少钱? 的帖子。

文章不长,这很方便,因为它更容易逐段解构。我主要关注企业级 Java,对此我有经验可谈。

博主开篇就直奔主题,简洁地说明了她为何不理解企业中的开源

从事开源软件开发的开发者通常有收入可观的日常工作。因此,他们免费从事开源软件开发,并在白天为丰厚的报酬编写代码。
哇,我以为我们多年前就已经摆脱了这种“业余爱好”的想法。让我引用一些关于 Linux 的统计数据,来自一篇 2004 年的文章,题为 Linux 现已成为企业巨兽。重点是我加的。
为了消除人们认为 Linux 是由大量孤立工作的独立黑客拼凑起来的看法,负责管理 Linux 内核的人士表示,现在大多数 Linux 改进都来自企业。“人们对典型 Linux 开发者的刻板印象是,一个男性计算机宅男在地下室里利用业余时间写代码,完全出于对手艺的热爱。直到大约五年前,这类人仍然是一股重要力量,”Andrew Morton 说,他的职责是维护稳定版本的 Linux 内核。Morton 说,这类爱好者的贡献“正在减弱”。相反,大多数代码是由打着企业考勤卡工作的程序员生成的。Morton 说,大约有 1000 名开发者定期为 Linux 贡献更改。在这 1000 名开发者中,约有 100 人是由雇主付费为 Linux 工作的。而这 100 人贡献了操作系统最近 38,000 项更改中的约 37,000 项
这意味着 97% 的提交来自受雇为 Linux 工作的人员。这种转变与 Linux 在企业中的日益普及相吻合。审视企业级 Java 中最成功的复杂项目,如 Spring、Hibernate 和 JBoss,也呈现出类似的情况。这些项目绝大部分都是由为它们背后的公司工作的开发者编写的。志愿贡献者几乎没有参与。因此,这些产品都展现出了快速的进展。

帖子现在转向经济学——或者更准确地说,试图论证…

ASM 版本不兼容性,在 Hibernate 中使用 Spring @Autowired

工程 | Alef Arendsen | 2007 年 6 月 11 日 | ...

这周我和 Joris 一起研究 Spring 2.1 的东西。我们正在准备一个使用所有三种依赖注入方式的示例。这个示例不仅强调了依赖注入,还展示了一个基于 Hibernate 的后端。

Spring 2.1 中的几个特性需要 ASM 字节码操作框架。Hibernate 也通过 CGLIB 使用 ASM。ASM 1.5.3 和 2.2.3 之间存在二进制不兼容性。前者由 Hibernate 使用,后者则由 Spring 在各种场景中使用;特别是某些 AOP 功能和新的 @Autowired 特性。

更新:阅读…

在多 WAR Spring 应用中使用共享的父应用上下文

工程 | Joris Kuipers | 2007 年 6 月 11 日 | ...

上个月我在土耳其进行了一次 Spring 核心培训。课程结束时,我讨论了学员在完成课程后将要构建的应用架构。这个应用将包含一个 ear 文件,其中包含多个 war 文件,并且提出了一个问题:是否可以定义一个单独的 ApplicationContext,作为所有 war 文件的 WebApplicationContext 的共享父级。这个上下文将保存服务、DAO 和其他不特定于单个 Web 模块的 Bean 定义。

实际上,Spring 使其…

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

Tanzu Spring 通过一项简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部