`
zyl
  • 浏览: 486740 次
社区版块
存档分类
最新评论

关于spring 2.0自定义xml 标记 (一 主要的相关类)

阅读更多
在spring 2.0 中,增加了自定义xml标记这一重大的功能。下面主要看一下spring 2.0实现这一功能的主要相关类:

NamespaceHandlerResolver(接口)
    由DefaultBeanDefinitionDocumentReader使用,用于定位NamespaceHandler,指定特定的命名空间uri

   实现类:
   DefaultNamespaceHandlerResolver
 
   通过map 保存所有的对应关系
   默认使用spring.handlers文件来保存所有的handlers
   可以定义其他的location 如:

   String location = "org/springframework/beans/factory/xml/support/customNamespace.properties";
   NamespaceHandlerResolver resolver = new DefaultNamespaceHandlerResolver(getClass().getClassLoader(), location);
 
   NamespaceHandler(接口)
  
      基础接口,用于DefaultBeanDefinitionDocumentReader处理自定义命名空间。
      方法:
         void init();
         由DefaultBeanDefinitionDocumentReader调用在构造完后但在解析自定义元素前。

         BeanDefinition parse(Element element, ParserContext parserContext);
         解析指定的元素。

         BeanDefinitionHolder decorate(Node element,
                                    BeanDefinitionHolder definition,
                                    ParserContext parserContext);
         执行相应的修饰。

   实现类:
   
    NamespaceHandlerSupport(抽象类)
 
   主要的三个方法:
   protected final void registerBeanDefinitionDecorator(
                         String elementName,
                         BeanDefinitionDecorator decorator)
   注册decorator,通过element

   protected final void registerBeanDefinitionDecoratorForAttribute(
                          String attributeName,
                          BeanDefinitionDecorator decorator)
    注册decorator,通过attr
 
    protected final void registerBeanDefinitionParser(
                          String  elementName,
                          BeanDefinitionParser parser)
    注册BeanDefinitionParser,通过element

   实际的操作由具体的BeanDefinitionDecorator 或者BeanDefinitionParser 执行

BeanDefinitionDecorator(接口)

   装饰相关的自定义属性。

     AbstractInterceptorDrivenBeanDefinitionDecorator
          用于注册相应的Interceptor bean 定义,使用aop代理

  其他类:

    PluggableSchemaResolver,用于自定义相关的schema,默认的schema 保存于spring.schemas文件中

    可以通过覆盖resolveEntity方法来装载相应的自定义xsd文件

  主要的执行类:

  XmlBeanDefinitionReader

    用于处理相应的读取工作,其实主要的工作委派给BeanDefinitionDocumentReader


  实际的类,就介绍到这,下一节通过实例来说明如何定义自定义xml 元素
分享到:
评论
6 楼 抱朴守拙 2007-05-23  
刚开始学习SPRING,感觉受益匪浅,值得顶一下。
5 楼 wuxiao1023 2007-05-23  
好文章,不用顶的!
4 楼 wolfigo 2006-10-30  
江南白衣 写道
居然没人顶?

为何要顶?
3 楼 wabe033 2006-10-30  
ddd
2 楼 Lincoln 2006-10-29  
很不错,顶!
1 楼 江南白衣 2006-10-27  
居然没人顶?

相关推荐

    Spring Boot 2.0官方参考文档

    #### 一、Spring Boot 2.0简介与系统需求 - **Spring Boot**是一个基于Spring框架的全新子项目,它旨在简化新Spring应用的初始搭建以及开发过程。该版本为2.0.0.BUILD-SNAPSHOT。 - **系统需求**: - **Servlet...

    Spring Data JPA 2.0 标准模板

    在Spring Boot项目中,只需要在`pom.xml`或`build.gradle`文件中添加Spring Data JPA 和相关的JPA依赖。例如,在Maven项目中: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data...

    SPRING 开发指南

    Spring 2.0引入了扩展XML配置的能力,允许自定义解析器和元素,这增强了Spring配置的灵活性,开发者可以根据项目需求定制自己的配置元素。 7. **Aspect-Oriented Programming (AOP)**: Spring提供了对面向切面...

    Spring和openJPA集成

    Spring 和 OpenJPA 集成是企业级Java开发中常见的技术组合,主要用于构建数据持久化层。Spring 是一个强大的轻量级应用框架,而 OpenJPA 是一个开源的 Java Persistence API (JPA) 实现,它允许开发者将对象关系映射...

    springboot备课.doc

    `@Configuration`标记在类上,代表该类相当于XML配置文件;`@Bean`标记在方法上,表示该方法将返回一个对象,这个对象会注册为Spring容器中的一个bean。 【创建SpringBoot应用】 创建SpringBoot应用通常涉及以下...

    activiti所需的包

    - `activiti-engine.jar`:这是Activiti的核心,包含流程引擎,用于解析流程定义(BPMN 2.0 XML文件),执行流程实例,并处理所有与流程相关的任务。 - `activiti-common-db.jar`:提供数据库连接和事务管理的支持...

    Activiti 5.8中文用户手册

    - **资源类型:** Activiti支持的外部资源类型,如Java类、Spring beans等。 **6.2.1 Java类** - **使用方法:** 如何在流程定义中使用Java类。 **6.2.2 在流程中使用Spring beans** - **Spring集成:** 如何在...

    Struts标记库

    `lib`目录下的`jdbc2_0-stdext.jar`提供了JDBC2.0可选包API,`Struts.jar`包含了所有Struts相关的Java类,而`.tld`文件则是标记库描述器,定义了Struts的自定义标签。这些库文件需要复制到Web应用的`WEB-INF\lib`...

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven权威指南是一本关于Apache Maven的书。 Copyright 1. Creative Commons BY-ND-NC Foreword: Beta 0.16 Preface 1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing ...

    Java框架面试题总结

    - 使用`@Scope("prototype")`注解标记Action类,确保每次请求都创建一个新的实例。 - 将所有成员变量声明为`transient`,避免在序列化过程中导致线程不安全。 - 在`execute`方法中避免使用实例变量,只使用局部变量...

    Activiti 7.3.0源代码

    Activiti 是一个流行的企业级工作流和业务自动化平台,它基于Java技术栈,实现了业务流程管理(BPM)标准,如BPMN 2.0。这个源代码包对于开发者来说,是一份宝贵的参考资料,可以深入理解Activiti的工作原理,并进行...

    Activiti 5.13 中文用户手册

    8. BPMN 2.0结构部分详细介绍了各种BPMN元素,包括事件(如定时器事件、错误事件、消息事件、开始事件、结束事件等)、顺序流、图形标记、XML内容、条件顺序流、默认顺序流、不同类型的网关(排他网关、并行网关、...

    东南融通面试题 内部

    - 可以自定义异常类,继承Exception类或者其子类。 4. **远程接口是什么:** - 远程接口(Remote Interface)是Java RMI(Remote Method Invocation)中用于定义远程服务调用的方法签名的接口。 - 定义了该接口...

    [其他类别]Jsp考试系统_jspks.zip

    它是由Sun Microsystems(现在已被Oracle公司收购)于1999年推出的一种服务器端脚本语言,主要用来构建基于Web的应用程序。JSP与HTML或XML等标记语言相结合,允许开发者将静态内容和动态生成的元素分开,提高了开发...

    jsp-api-2.1.jar

    JSP 2.1是JSP技术的一个版本,它包含了一系列增强功能,比如EL(Expression Language)的更新,自定义标签库的支持,以及对Servlet 2.5的集成等。 **详细知识点:** 1. **JSP基本概念**:JSP是Java Web开发的一种...

    querydsl使用文档

    标题中的“querydsl使用文档”直接指向了文档的主题,即Querydsl(Query Domain Specific Language)的相关使用说明。Querydsl是一个类型安全的查询框架,用于Java环境。它的主要特点是能够通过简单、类型安全的方式...

    Activiti_5.14_用户手册_中文版.doc

    - **试验性功能**:某些新功能可能被标记为试验性的,这些功能可能会在未来的版本中有所变动。 - **内部实现类**:为了更好地理解 Activiti 的工作原理,手册中提到了一些重要的内部实现类。 #### 二、开始学习 - *...

    args4j-tools-2.0.14.jar.zip

    "args4j-tools-2.0.14.jar.zip"是一个包含特定版本的args4j工具库和相关许可文件的压缩包。args4j是一个Java库,专门设计用于处理命令行参数,它使得在Java程序中解析命令行选项变得简单易行。这个库广泛应用于各种...

    Activiti 5.13 用户手册(中文版)

    - **外部资源**: 如XML文件、Java类等。 - **Java类**: 定义业务逻辑的具体实现。 - **在流程中使用Spring beans**: 直接在流程中引用Spring管理的bean。 - **创建独立应用**: 构建不依赖于其他框架的应用程序。 - *...

Global site tag (gtag.js) - Google Analytics