轻量级开发的成功秘诀,第 2 部分: 如何减轻容器
2009-11-11 00:00:00 来源:WEB开发网Pico
Pico 容器是最小的可用容器。它与 Spring 的主要区别之处是在风格上面。Pico 程序员首先依靠构造函数进行注入。Pico 不使用 XML,而是使用 Java 代码来注册容器中的 bean。类似 Spring,Pico 也支持 setter 注入,但主要使用构造函数。Pico 也远不及 Spring 所支持的服务数量。它主要是一个依赖注入容器。不过,当您不需要 Spring 提供的所有企业服务时,Pico 绝对是您的首选。
HiveMind
HiveMind 是最新的开放源码轻量级容器。它比 Pico 拥有更多的支持模块,但还是少于 Spring。尽管如此,HiveMind 使您可以使用 Spring 的一些 bean 和 服务。它能通过 setter 和构造函数管理依赖性。HiveMind 的主要贡献是以下两个重要思想:
称为模块的封装概念,松散地基于 Eclipse 插件模型,使您在粗粒度级别管理依赖性。
称为 HiveDoc 的文档工具让您为容器中的模块生成参考文档,这非常类似于使用 Javadoc 为您的 Java 代码生成文档。
现在说 HiveMind 是否会产生大的影响还为时过早。
EJB 技术
考虑您现在使用 EJB 所做的事情,例如声明性事务、远程控制和安全性。如果您可以使用轻量级容器代替在 EJB 环境中所做的大多数事情,那为什么不使用轻量级容器呢?该问题迫使 EJB V3.0 专家组重新设计核心 EJB 架构。EJB V3.0 将更有效地实现轻量级容器策略。当前 EJB 架构和最新的 EJB V3.0 间的主要区别是:容器将提供您使用的主要服务,并且您可以使用 XML 来配置容器,但 EJB 技术也将严重地依赖配置的注释。
一些优秀的顾问已经对 EJB 技术中注释的过度使用引起了关注。我也保留我的意见,但 EJB 技术确实有了大麻烦。EJB 小组必须尽快发布补丁,否则轻量级容器可能会放弃使用 EJB 技术。客户已经可以使用 Spring 满足绝大多数的需要。在 EJB 技术大量使用之时,时机可能过晚了。
结束语
现在,您已经大概了解了轻量级容器。您了解了以下的基本设计理论:
构建一个接受 POJO 的容器,而不是受限制的组件
使用依赖注入来松散、解析依赖性
使用拦截和 AOP,将服务与 POJO 相关联
在接下来的文章中,我将详尽地为您介绍主要的轻量级容器并说明何时使用它们。然后,我将比较完整地介绍 Spring(最流行的容器)。在本文开始的部分,我告诉您我需要在不牺牲自行车避震系统的前提下,减轻自行车的重量。现在您知道了,如何在不牺牲企业服务的前提下减轻您的容器。
学习愉快!
更多精彩
赞助商链接