来自 SpringSource 的 Adrian Colyer 详述应用开发中的 Spring

  • Srini Penchikala
  • 苑永凯

2007 年 11 月 27 日

话题:Java语言 & 开发架构

三个星期前,来自SpringSource(从前的Interface21)的Adrian Colyer主持了一个主题为应用开发中的 Spring的网络研讨会。讲稿主题内容涉及Spring运行时内核体系结构,Spring如何为事务、数据存取、安全以及消息等企业级服务提供支持,以及如何调校基于Spring的应用程序。现在你可以从他们网站上下载到关于这个讲稿的白皮书。

AdrianSpring运行时的概述作为讲稿的开始,他说Spring运行时应该负责创建和管理应用程序组件,并负责管理这些组件所提供服务的请求调用。

讲稿包含以下三个部分:

  • 内核。内核由AOP(面向方面编程),资源加载组件(Resource Loading Components)和事件服务器(Event server)组成。内核负责实例化、配置应用程序组件,并对这些组件为各种请求提供的调用服务进行管理Adrian按照引导加载(bootstrapping)、配置、组装、后处理以及应用程序组件生命周期管理的步骤,向大家说明了内核的内部工作方式。同时,他还解释了内核在支持请求转发(request dispatching)、资源加载和事件管理方面的细节。
  • 企业服务层(Enterprise Services Layer)。位于企业服务层的运行时组件使用类似于命名空间管理器(namespace handlers)和后处理器(post-processors)的Spring扩展机制插入到内核当中。这些组件提供事务管理数据存取,异常管理,消息和安全支持。这部分讲稿还包含了Spring运行时如何支持JMX 集成Web 请求处理需求。
  • 性能调优。Adrian推荐采用“测量优先”的方式去调校基于Spring框架的Java EE应用,以避免对问题进行任何过早的优化。测量应用性能涉及到使用像Apache JMeterSeleniumJAMon,以及代码剖析工具JProfiler或者Yourkit)这样的工具,找出热区(hotspots)并确定应用程序每一层次的相应时间基线。对于数据库连接池、JMS消息和JMX管理,他建议开发人员利用容器内的资源。同时他还提到了一些设计技巧,例如何时选择使用Hibernate还是JDBC查询,以及使用Hibernate Statistics对象了解ORM层在运行时都发生了些什么。

Adrian在最后极力主张开发人员善于利用运行时优化,例如将仅仅包含持久化逻辑(而没有业务逻辑)的操作作为存储过程迁移到数据库中,并考虑对可以在后台运行的任务使用Spring提供的异步任务执行器

SpringSource网站上完成注册后,你就可以下载应用开发中的 Spring讲稿的白皮书了。

在与InfoQ的对话中,Adrian表示,该系列网络研讨会的焦点将是“应用性主题——网络研讨会和白皮书将专注于基于Spring的应用程序开发和部署的最佳实践,而不是简单的产品特性说明”。下一次网络研讨将于明年早些时候举行。

今后的讲稿将包括下面一些主题:

  • Spring应用程序配置测试的最佳实践。
  • Spring与极限事务处理。
  • 部署在特定服务器环境(比如WebLogicWebSphere,以及Oracle应用服务器)上的Spring应用。

关于这些主题的任何建议和提议,请邮件至AdrianSripngSource团队

查看英文原文SpringSource's Adrian Colyer Details Spring in Production


译者简介:苑永凯软件设计师,毕业于山东大学主要关注领域Java EE企业应用、Java EE中间件技术以及敏捷开发方法实践,微有心得;虽笔拙,仍喜好记录得与众人分享,乐此不疲。他的 Blog 为http://blog.csdn.net/ai92,您也可以通过yuanyk@gmail.com与他联系参与 InfoQ 中文站内容建设,请邮件至china-editorial@infoq.com

Java语言 & 开发架构