生命周期的思考
在程序的运行期,应如何创建我们所需要的对象
当创建一个新的对象时,如何保证与这个对象所关联的依赖关系也能够被正确地创建出来
引出的对象生命周期管理的来两个不同方面
在程序的运行期,对象实例的创建和引用机制
对象与其关联对象的依赖关系的处理机制
每个对象自身对于逻辑的执行能力,被其所依赖的对象反向空中了,这也就是控制反转的本质含义
因此 应该引入一个与具体的业务逻辑完全无关的额外的变成元素容器来帮助进行对象的生命周期管理
容器首先被设计成一个接口而不是具体的实现累,而整个接口定义中既包含获取对象实例的方法,也包含管理对象依赖关系的方法
容器是一个辅助的编程元素,他在整个系统中应该被实例化为一个全局的 单例的对象
容器在系统初始化是进行自身的初始化,系统应该提供一个可靠的 在任何编程层次都能够对这个全局的容器或者容器中的管理对象进行访问的机制
这就要求 看 容器的初始化需求 系统与容器的通信机制
调用容器的getInstance来获取对象实例的时候,我们只能获取那些被容器管理的对象实例
XWork 容器所管理 的对象包括所有框架配置定义中的 容器配置元素
调用XWork容器的inject方法,能够帮助我们讲容器所管理的对象 包括框架的内置对象以及系统的运行参数 主任到任意的对象实例中去,从而建立起任意对象与框架元素沟通的桥梁
为某个对象的方法和构造函数 内部实例变量 方法产生 变量 加入@Inject的annotation
调用容器的inject方法,完成贱人Annontation的那些对象的注入
通过操作容器进行对象操作的基本前提是当前的操作主体能够获取全局的容器实例,因而,全局的容器实例的获取在操作主题的初始化过程完成
通过操作容器进行的对象操作都是在运行请操作
通过操作容器所获取的对象实例,都是受到容器托管的对象实例
通过操作容器进行的依赖注入操作,可以针对任意对象进行,该操作可以建立在任意对象和容器托管对象之间的联系
在容器内部进行缓存的是对象实例的构建方法,而不是对象实例本身,这就让容器看起来想一个工作的集合,能够根据不同的 要求,制造出不同类型的对象实例
xwork还需要一类缓存的帮助,这累缓存用于记录对象和对象之间的依赖关系,这一类缓存数据在xwork容器的内部被称之为注入器 Injector