《Servlet和JSP学习指南》的app10e demo,介绍了自己动手写一个依赖注入框架的过程。总结一下,加深理解
1. 什么是依赖注入
假如有两个组件A 和B,A 依赖B,假设A 有一个方在是importantMethod ,它像下面这样使用B:
public class A{ public void importantMethod(){ B b = ... // get an instance of B b.usefulMethod(); } }
在A 使用B 之前, A 必须获得B 的一个实例。如果B 是一个Java 实体类,那么就会像使用new关键字一样简单,但是如果B 不是Java 实体类,并且B 还有许多个实现,那就会比较麻烦了。
你必须选择一个B 实现,并且这么做还会降低A 的可重用性, 因为如果你还没有选择好B 的实现,将无法使用A。
对于要在依赖注入环境中使用的类,必须提前将它注入。一种方法是给每个依赖都创建一个set 方法,也可以在构造器或者类域中进行。
2. DAO类图
3. 交互过程
4. 依赖注入框架
5. 依赖注入框架的使用
我们在ControllerServlet中的init方法中创建依赖注入框架DependencyInjector,并start。在Process方法中调用其getObject,获得注入后的对象。在destory方法中调用其shutDown方法。