`

xwork 中的容器

 
阅读更多

生命周期的思考

 

在程序的运行期,应如何创建我们所需要的对象

当创建一个新的对象时,如何保证与这个对象所关联的依赖关系也能够被正确地创建出来

 

引出的对象生命周期管理的来两个不同方面

在程序的运行期,对象实例的创建和引用机制

对象与其关联对象的依赖关系的处理机制

每个对象自身对于逻辑的执行能力,被其所依赖的对象反向空中了,这也就是控制反转的本质含义

 

因此 应该引入一个与具体的业务逻辑完全无关的额外的变成元素容器来帮助进行对象的生命周期管理

容器首先被设计成一个接口而不是具体的实现累,而整个接口定义中既包含获取对象实例的方法,也包含管理对象依赖关系的方法

 

容器是一个辅助的编程元素,他在整个系统中应该被实例化为一个全局的 单例的对象

 

容器在系统初始化是进行自身的初始化,系统应该提供一个可靠的 在任何编程层次都能够对这个全局的容器或者容器中的管理对象进行访问的机制

 

这就要求 看 容器的初始化需求 系统与容器的通信机制

 

调用容器的getInstance来获取对象实例的时候,我们只能获取那些被容器管理的对象实例

XWork 容器所管理 的对象包括所有框架配置定义中的 容器配置元素

 

调用XWork容器的inject方法,能够帮助我们讲容器所管理的对象 包括框架的内置对象以及系统的运行参数 主任到任意的对象实例中去,从而建立起任意对象与框架元素沟通的桥梁

 

为某个对象的方法和构造函数 内部实例变量 方法产生 变量 加入@Inject的annotation

调用容器的inject方法,完成贱人Annontation的那些对象的注入

 

通过操作容器进行对象操作的基本前提是当前的操作主体能够获取全局的容器实例,因而,全局的容器实例的获取在操作主题的初始化过程完成

通过操作容器进行的对象操作都是在运行请操作

通过操作容器所获取的对象实例,都是受到容器托管的对象实例

通过操作容器进行的依赖注入操作,可以针对任意对象进行,该操作可以建立在任意对象和容器托管对象之间的联系

 

 

 

在容器内部进行缓存的是对象实例的构建方法,而不是对象实例本身,这就让容器看起来想一个工作的集合,能够根据不同的 要求,制造出不同类型的对象实例

 

xwork还需要一类缓存的帮助,这累缓存用于记录对象和对象之间的依赖关系,这一类缓存数据在xwork容器的内部被称之为注入器 Injector

 

 

 

 

 

 

分享到:
评论

相关推荐

    xwork2.1.2源码与xwork2.2.1源码

    1.1 动作管理:xwork 2.1.2中,Action的管理主要通过ActionProxy和DefaultActionProxy实现。ActionProxy是Action的代理,负责调用实际的Action。DefaultActionProxy则实现了ActionProxy接口,提供了具体的执行逻辑。...

    xwork-2.0.4 源码

    xwork是一个强大的Java框架,主要用于处理Web应用中的业务逻辑和动作控制。xwork-2.0.4版本是其发展过程中的一个重要里程碑,为开发者提供了更稳定、更高效的功能。本文将对xwork-2.0.4的源码进行深度解析,揭示其...

    XWork源码+docs全

    5. **对象容器**:XWork内置了ObjectContainer,可以用于管理依赖注入,实现对象的生命周期管理。 6. **异常处理**:XWork有完善的异常处理机制,可以捕获和处理Action执行过程中的异常,并根据异常类型选择合适的...

    xwork-core源码

    3. **ValueStack**:ValueStack是xwork-core中的数据容器,用于管理Action上下文中的数据。它允许开发者直接访问ActionContext中的值,简化了视图与模型之间的数据传递。 4. **类型转换**:xwork-core提供了强大的...

    所有xwork2源代码

    9. **依赖注入(Dependency Injection, DI)**:XWork2支持DI,可以通过容器管理Action的依赖,减少代码的耦合度,提高可测试性和可维护性。 10. **测试支持**:XWork2提供了JUnit集成,使得单元测试Action和拦截器...

    XWork 源码

    - **ValueStack**:值栈是XWork中存储动作属性和结果的容器,它允许将模型对象与视图层的数据共享。 学习源码时,可以通过以下步骤来提升理解: 1. **阅读核心类**:先从Action、ActionContext、Interceptor等核心...

    xwork-2.0.5-src

    6. **对象容器(Object Container)**:`com.opensymphony.xwork2.inject`包提供了依赖注入的功能,实现了对象的创建和管理。这使得Struts2可以轻松地与其他依赖注入框架(如Spring)集成。 7. **表达式语言...

    xwork-2.0.5-src+xwork-2.0.5-jar.zip

    3. **部署与运行**:JAR文件是XWork在项目中的运行基础,通常会与Web服务器或应用服务器结合使用,通过Servlet容器来处理HTTP请求。 四、源码学习与开发实践 1. **源码阅读**:通过阅读XWork 2.0.5的源代码,可以...

    xwork2源代码及jar

    5. **对象容器**:XWork2内置了一个轻量级的对象容器,称为OgnlContext,它负责存储动作上下文中的对象,包括动作实例、属性值以及与视图层交互的数据。OGNL(Object-Graph Navigation Language)表达式语言被用来...

    xwork2.0.4源代码

    xwork2.0.4的源代码中,主要包含了以下几个核心模块: 1. **ActionInvocation**:这是xwork的核心类,负责调用Action的执行流程。它维护了ActionContext、InterceptorStack等关键信息,通过调用InterceptorStack中...

    Xwork——Struts2核心

    在Xwork中,每一个Action都与一个ValueStack关联,ValueStack是一种特殊的容器,用于存储Action及其相关的对象。通过这种方式,开发者可以在Action之间共享数据,同时保持每个Action的独立性和可测试性。 - **...

    xwork配置内容详细讲解

    XWork 是一个轻量级的 Java 动作框架,它主要用于处理 Web 应用程序中的业务逻辑。XWork 提供了一种简洁的方式来管理动作类(Action Class),并且通过拦截器(Interceptor)机制来增强动作类的功能。XWork 的设计...

    xwork-core-2.3.4.1-sources.jar.zip 源代码

    3. **ValueStack**:ValueStack是Struts2的数据容器,它用于存储ActionContext中的值,提供了OGNL(Object-Graph Navigation Language)表达式来访问和操作这些值。ValueStack使得视图层可以直接通过表达式获取和...

    Xwork2 源码阅读(一)

    Xwork2是Struts2框架的核心部分,它提供了一种基于Action的模型-视图-控制器(MVC)架构,是Java Web开发中的重要组件。这篇分析文章将深入探讨Xwork2的源码,揭示其设计模式、核心机制以及如何与其他工具协同工作。...

    Struts2中的xwork源代码

    2. **ActionContext**:在Struts2中,ActionContext是线程局部存储容器,用于保存请求相关的上下文信息,如值栈、参数、session和全局的属性等。它使得在不同组件间共享数据成为可能。 3. **ValueStack**:这是一个...

    xwork-2.1.6.rar

    在XWork中,Action是业务逻辑的载体,它定义了应用程序中的具体操作。开发者可以通过继承`com.opensymphony.xwork2.ActionSupport`基类来创建自定义Action,该基类提供了基本的状态管理(如SUCCESS、ERROR等)和...

    struts2下的xwork源码

    4. **ValueStack**:ValueStack是Struts2中的一个数据容器,它可以将Action实例和Ognl表达式关联起来。通过ValueStack,我们可以方便地在JSP中使用Ognl表达式来访问Action的属性。 5. **Result**:Action执行完成后...

    xwork.2.1.5.jar

    xwork框架是Web应用开发中的一个重要工具,它为Struts2提供了核心的工作机制。这款开源框架以其灵活、强大的功能和良好的扩展性,在Java Web开发领域备受青睐。在深入探讨xwork之前,我们首先需要了解xwork的核心...

    xwork-2.0.4.jar.zip

    Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control反转控制)容器等。

    xwork-2.1.5源代码

    `ConfigurationManager`负责加载并管理配置信息,`PackagesProvider`提供容器中的包信息,而`ContainerBuilder`构建并初始化整个框架的容器。这些组件协同工作,使得xwork能够动态地加载和更新配置。 在`...

Global site tag (gtag.js) - Google Analytics