返回介绍

第 4 章 自定义标签的解析

发布于 2025-04-22 22:09:09 字数 1119 浏览 0 评论 0 收藏

在之前的章节中,我们提到了在 Spring 中存在默认标签与自定义标签两种,而在上一章节中我们分析了 Spring 中对默认标签的解析过程,相信大家一定已经有所感悟。那么,现在将开始新的里程,分析 Spring 中自定义标签的加载过程。同样,我们还是先再次回顾一下,当完成从配置文件到 Document 的转换并提取对应的 root 后,将开始了所有元素的解析,而在这一过程中便开始了默认标签与自定义标签两种格式的区分,函数如下:

protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) {

  if (delegate.isDefaultNamespace(root)) {

   NodeList nl = root.getChildNodes();

   for (int i = 0; i < nl.getLength(); i++) {

    Node node = nl.item(i);

    if (node instanceof Element) {

     Element ele = (Element) node;

     if (delegate.isDefaultNamespace(ele)) {

     parseDefaultElement(ele, delegate);

    }

     else {

     delegate.parseCustomElement(ele);

    }

   }

  }

 }

  else {

  delegate.parseCustomElement(root);

 }

}

在本章中,所有的功能都是围绕其中的一句代码 delegate.parseCustomElement(root) 开展的。从上面的函数我们可以看出,当 Spring 拿到一个元素时首先要做的是根据命名空间进行解析,如果是默认的命名空间,则使用 parseDefaultElement 方法进行元素解析,否则使用 parseCustom Element 方法进行解析。在分析自定义标签的解析过程前,我们先了解一下自定义标签的使用过程。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。