WEB开发网
开发学院软件开发Java Apache Geronimo 中的依赖注入,第 2 部分: 下一代... 阅读

Apache Geronimo 中的依赖注入,第 2 部分: 下一代

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示:本系列的第一篇文章独立于 DI 在 Geronimo 中的具体实现,讨论了 DI 在 Geronimo 核心层的工作方式,Apache Geronimo 中的依赖注入,第 2 部分: 下一代,那篇文章演示了为什么 DI 是处理包含相互引用的类之间耦合点的有效方式,本文将在这些概念上进行扩展,例如,一个持久性框架 bea

本系列的第一篇文章独立于 DI 在 Geronimo 中的具体实现,讨论了 DI 在 Geronimo 核心层的工作方式。那篇文章演示了为什么 DI 是处理包含相互引用的类之间耦合点的有效方式。本文将在这些概念上进行扩展,把它们放在 Geronimo 的上下文环境中。通过这种方式,将学习如何使用 DI 并理解 Geronimo 如何实现 DI (构造函数和 setter 方式)。

DI 处理代码解耦有现实的好处。这里是几个例子:假设有一个人力资源部门,要根据员工服务的客户提升基本工资。要处理这个问题,要把客户实现成一个抽象基类,拥有许多不同的子类(例如,财务、制造等等)。在编写 Human Resources 类时,不知道给定员工要处理哪种类型的客户。所以,Human Resources 类要依赖于客户类的特定实现。使用 DI,可以通过配置容器或在代码中实现注入,让容器注入适合的客户类。

第二个,也是更典型的例子是持久性框架的使用。容器知道它要使用持久性框架(例如 Hibernate、Java 数据对象 [JDO] 或 iBATIS),而且每个框架都提供公共函数。使用 DI,容器可以利用容器的配置来注入特定持久性框架的代码。让持久性的耦合这么松散,就能够更容易地从一个框架切换到另一个框架。

Geronimo 的架构

Geronimo 的构建,与多数传统的 Java™ 2 Platform, Enterprise Edition (J2EE) 应用服务器不同,在传统的应用服务器中,构成应用服务器的类紧密地绑定到应用服务器的代码基。Geronimo 定义了一个基本内核,可以向它注入需要的行为。实际上,如果没有向 Geronimo 注入定义 J2EE 行为的组件,那么没有什么东西能让它成为 J2EE 应用服务器。Geronimo 是组件的松散组合,这些组件叫做 GBeans,它们在部署的时候注册到基内核,从而定义了应用服务器的功能。然后,GBeans 可能彼此相互依赖。例如,一个持久性框架 bean 可能依赖一些由文件管理 bean 定义的功能。图 1 显示了 Geronimo 的这个概念性定义。

1 2 3 4 5 6  下一页

Tags:Apache Geronimo 依赖

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接