三个星期前,来自 SpringSource(从前的 Interface21)的 Adrian Colyer 主持了一个主题为“应用开发中的 Spring”的网络研讨会。讲稿主题内容涉及 Spring 运行时内核体系结构,Spring 如何为事务、数据存取、安全以及消息等企业级服务提供支持,以及如何调校基于 Spring 的应用程序。现在你可以从他们网站上下载到关于这个讲稿的白皮书。
Adrian 以对 Spring 运行时的概述作为讲稿的开始,他说 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 JMeter 、 Selenium 和 JAMon ,以及代码剖析工具( JProfiler 或者 Yourkit )这样的工具,找出热区(hotspots)并确定应用程序每一层次的相应时间基线。对于数据库连接池、JMS 消息和 JMX 管理,他建议开发人员利用容器内的资源。同时他还提到了一些设计技巧,例如何时选择使用 Hibernate 还是 JDBC 查询,以及使用 Hibernate Statistics 对象了解 ORM 层在运行时都发生了些什么。
Adrian 在最后极力主张开发人员善于利用运行时优化,例如将仅仅包含持久化逻辑(而没有业务逻辑)的操作作为存储过程迁移到数据库中,并考虑对可以在后台运行的任务使用 Spring 提供的异步任务执行器。
在 SpringSource 网站上完成注册后,你就可以下载“应用开发中的 Spring”讲稿的白皮书了。
在与 InfoQ 的对话中,Adrian 表示,该系列网络研讨会的焦点将是“应用性主题——网络研讨会和白皮书将专注于基于 Spring 的应用程序开发和部署的最佳实践,而不是简单的产品特性说明”。下一次网络研讨将于明年早些时候举行。
今后的讲稿将包括下面一些主题:
- Spring 应用程序配置和测试的最佳实践。
- Spring 与极限事务处理。
- 部署在特定服务器环境(比如 WebLogic 、 WebSphere ,以及 Oracle 应用服务器)上的 Spring 应用。
关于这些主题的任何建议和提议,请邮件至 Adrian 和 SripngSource 团队
查看英文原文: 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 。
评论