11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2007-11-27
  • 本文字数:1392 字

    阅读完需:约 5 分钟

三个星期前,来自 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

2007-11-27 08:36473

评论

发布
暂无评论
发现更多内容

区块链技术,通证经济未来趋势,两者有什么关系?

CECBC

区块链

业务架构训练营第 0 期模块一作业

菠萝吹雪—Code

树莓派的组装与开机

IT蜗壳-Tango

IT蜗壳教学 4月日更

模块一

^_^vincent

华仔架构设计-模块1作业

大师兄

学生管理系统架构

Fleng

架构实战营

编程好习惯之理清数据的可变性

顿晓

4月日更 不可变

架构实战营 模块一 总结

Pitt

vue接入腾讯实时音视频trtc-js-sdk的技术难点与解决方案

孙叫兽

Vue 音视频 解决方案 trtc-js-sdk

架构实战营模块一 - 总结

凯迪

区块链技术引领新一轮技术变革浪潮

CECBC

Redis 6.0 多线程、客户端缓存、权限控制

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

架构实战营课程一作业

Saber

架构实战营

数据结构和算法

奈奈奈奈

数据结构与算法

#架构实战营 模块一作业

薛定谔的指南针

架构实战营

你才不是只会理论的女同学-seata实践篇

好好学习,天天向上

Java MySQL spring 事务 seata

模块一作业

鲲哥

跟着源码一起学:手把手教你用WebSocket打造Web端IM聊天

JackJiang

网络编程 websocket 即时通讯 IM

H1 作业1

dwade

【Java试题】从一道题目再看Java继承

程序员架构进阶

Java 面试 28天写作 4月日更

Dubbo源码阅读-泛化调用实现原理

小江

dubbo RPC

CLOSE_WAIT过多导致Jetty服务器假死

六维

Java Jetty Web 4月日更

架构师实战营 模块一作业 微信业务架构图

好吃不贵

Vue中Echarts基本使用

Chalk

大前端 eCharts 4月日更

博文推荐|多图详解 Apache Pulsar 消息存储模型

Apache Pulsar

大数据 开源 流计算 Apache Pulsar 消息系统

作业1-20210406

Geek_b437fc

架构实战营 模块一作业

ercjul

架构实战营

复兴or幻象?VR的2021三重门

脑极体

架构实战营 - 模块01作业

架构实战营

区块链技术解决信任问题

CECBC

信任 信任机制

面试官

ES_her0

4月日更

来自SpringSource的Adrian Colyer详述应用开发中的Spring_Java_Srini Penchikala_InfoQ精选文章