模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。
作者 Ian Roughley 译者 宋玮 发布于 2007年11月29日 上午1时50分
在来自SpringSource的一份新白皮书中,Adrian Colyer说明了Spring所提供的运行时环境。Spring编程和配置模型已经得到很好的理解并有大量的文档,而且被全球数十万开发者所使用。这个白皮书是为管理Spring应用程序的运营团队而写的。白皮书的第一部分回顾了Spring内核的核心职责,它们是:
于是最优化归结为两类:建立一个有效的蓝图(调优你的配置)、有效使用运行时设施(使你的应用设计最优化)。从一个干净且清晰的设计开始,充分利用Spring提供的设施,只在数据显示确实有好处的地方才无需遵循这一点。建立一个有效的蓝图
Spring的PropertyPlaceholderConfigurer非常适合将那些可能需要由运营团队修改的配置设定外部化。而且
这里一个好的技巧是使用Spring的JMX输出(export)能力来定义一个MBean,它通过JMX来暴露所有配置值。这使你能够连接到一个正在运行的应用程序上,并很容易看到它当前正在使用的配置值。利用运行时最优化
完整的白皮书可以从SpringSource下载。
- Spring Batch项目中支持的重试可以用来重试失败的操作(例如,在Oracle RAC中,一个在某一簇节点上已经失败的操作)。通过减少传播到最终用户失败的数量,可以减轻运营负担。
- 不要低估Web内容展现的开销。你应该明确地在事务之外做这项工作。
- 不要每次请求都实例化应用程序上下文(它是团队移植遗留应用到Spring上时不时会碰到的错误)。
- 对可以在后台运行的任务,考虑使用Spring的异步任务执行器来减少用户等待时间。
- 选择合适的远程协议。如果你不需要SOAP的互通性,一个简单方案(如Spring的HttpInvoker支持)将更快更简单。
- 对影响大部分应用程序的aspect,考虑使用AspectJ代替Spring AOP。
查看英文原文:Performance Tuning Spring Applications
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
1 条回复
关注此讨论 回复