揭穿神话:代理影响性能

工程 | Alef Arendsen | 2007 年 7 月 19 日 | ...

在最近的一篇博客文章中,Marc Logemann 谈到了代理性能的主题。在他的文章中,他要求“Spring 开发者”提供一份白皮书。我不想花费大量篇幅讨论代理和字节码织入机制之间精确到纳秒的差异,但我确实认为重申这些差异以及这种讨论是否重要是有价值的。

什么是代理以及我们为什么使用它们?

让我们首先简要回顾一下代理的用途(通常以及在 Spring 中)。根据 GoF(Gang of Four)关于 设计模式 的书,代理是另一个对象的替身或占位符,用于控制对其的访问。因为代理位于对象的调用者和实际对象之间,所以它可以决定阻止实际(或目标)对象被调用,或者在目标对象被调用之前做一些事情。prox.jpg

换句话说,代理可以用作真实对象的替身,以对这些对象应用额外的行为——无论是与安全相关的行为、缓存还是性能测量……

Grails 和 Maven:一种不方便的结合

工程 | Dave Syer | 2007 年 7 月 14 日 | ...

介绍

Grails 似乎发展势头越来越好,并且看起来确实“有潜力”,正如他们所说。我很有兴趣将这些潜力扩展到 Web 应用程序领域之外。如果您了解我在Spring Batch 上的工作,您大概可以猜出这会把我带到哪里。但在这篇文章中,我想分享一些我在 Grails 应用程序的基本、低级部署和构建方面的一些经验。

我对 Maven 2 有一种爱恨交织的关系,而且我正在学习爱上 Grails,但遗憾的是,这两者结合得并不好。这会…

构造函数注入与 Setter 注入以及 @Required 的使用

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

几个月前,我们在 www.springframework.org 上开始发布问卷调查,征求大家对 Spring、其功能以及使用方式的反馈。我提出的第一个问题是,大家是否会检查必需的依赖项,如果会,他们使用了什么机制。我很快就跟进了这个问题,询问社区他们使用何种事务管理策略。

令我高兴的是,当我第一次查看结果时,在三月份,很多人通过第一个投票告诉我们,他们正在使用 @Required 注解。第二个…

Java EE 6 做的很对

工程 | Rod Johnson | 2007年7月3日 | ...

今天发布了 Java EE 6 提案 (JSR 316)。我相信这将是该平台自近 10 年前发布以来最重要的修订版,并且应该受到技术用户的欢迎。Interface21 很乐意成为该 JSR 的支持者,我期待为其做出贡献。

Java EE (在其大部分历史中被称为 J2EE) 在创建 Java 中间件市场方面发挥了宝贵的作用。然而,在这 10 年里,该平台出现了一些重要问题,例如:

  • 需要一个符合 Java EE 标准的服务器,但它却充满了对绝大多数用户几乎不感兴趣的功能。
  • 自从设想 J2EE 以来,企业需求已经发生了变化,并且“一刀切”的模式越来越不合适。
  • 随着框架的出现 (尤其是在开源领域),企业 Java 得到了极大的加强,这些框架使开发人员更具生产力,并且他们的生产应用程序更高效、更易于维护。
  • Ruby on Rails 甚至 .NET 等新的挑战表明,在快速变化和创新的时代,一个舒适的 2-3 年发布周期会危及整个平台。

Java EE 6 是该平台一次重要的修订,它…

开源是否正在消亡?未被证明

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

Michael Hickins 最近在 eWeek 上发表了一篇题为 Is Open Source Dying (开源是否正在消亡) 的文章。这个标题吸引了我,无疑也吸引了许多其他人。但文章并未证明这一点,尽管它包含了一些值得讨论的有趣观点。

文章的大部分内容都在猜测政府使用开源的经验以及 IBM 等供应商的动机。我更愿意根据公司的行为来评判它们,而不是猜测它们的动机,而且有大量证据表明,例如 IBM 非常认真地对待开源。有大量的…

那么,您是否仍应使用 Spring 的 HibernateTemplate 和/或 JpaTemplate??

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

前几天我读了 Vigil Bose 在 TSS 上关于 使用 Spring 进行动态路由的文章,看到了 HibernateDaoSupport 类的用法。由于这不再是推荐的从 Spring 使用 Hibernate 的方式,我想我不如再写一篇博客来谈谈。

随着 Spring 2.0 的出现,可以再次开始直接使用 Hibernate Session API 了。问题在于,在使用 Hibernate 或 Spring 提供的其他模板化方法时,是否明智地放弃使用 HibernateTemplate。

使用 Spring XxxTemplates

在 Spring 1.0 中,我们引入了一种处理抛出检查性异常的数据访问 API 的革命性方法。Spring 提供的模板方法与其事务同步管理器以及对运行时异常的广泛使用,使得 2005 年我们创造的 TCFTC (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. 我们需要一种机制来从初始响应中提取唯一的 Flow Execution Key,并将其用于自定义同一 Flow 会话中的后续请求。

Apache JMeter 是一个开源的性能测试工具,可以满足以上两个考虑因素。

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有