Apache Geronimo 中的依赖注入,第 2 部分: 下一代
2009-11-11 00:00:00 来源:WEB开发网本系列的第一篇文章独立于 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 的这个概念性定义。
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››Apache HTTPServer2.2.16 发布
更多精彩
赞助商链接