1. 程式人生 > >Spring原始碼追蹤2——xml解析入口

Spring原始碼追蹤2——xml解析入口

解析xml節點入口

org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(Element root)

protected void doRegisterBeanDefinitions(Element root) {
    // Any nested <beans> elements will cause recursion in this method. In
    // order to propagate and preserve <beans> default-* attributes correctly,
    
// keep track of the current (parent) delegate, which may be null. Create // the new (child) delegate with a reference to the parent for fallback purposes, // then ultimately reset this.delegate back to its original (parent) reference. // this behavior emulates a stack of delegates without actually necessitating one.
BeanDefinitionParserDelegate parent = this.delegate; this.delegate = createDelegate(this.readerContext, root, parent); if (this.delegate.isDefaultNamespace(root)) { String profileSpec = root.getAttribute(PROFILE_ATTRIBUTE); if (StringUtils.hasText(profileSpec)) { Assert.state(
this.environment != null, "Environment must be set for evaluating profiles"); String[] specifiedProfiles = StringUtils.tokenizeToStringArray( profileSpec, BeanDefinitionParserDelegate.MULTI_VALUE_ATTRIBUTE_DELIMITERS); if (!this.environment.acceptsProfiles(specifiedProfiles)) { return; } } } preProcessXml(root); parseBeanDefinitions(root, this.delegate); postProcessXml(root); this.delegate = parent; }

 繼續往下追蹤,parseCustomElement是解析自定義的元素節點,如<aop:aspectj-autoproxy />

自定義標籤對應類查詢

classpath下面的/META-INF/spring.handlers屬性檔案

相關推薦

Spring原始碼追蹤2——xml解析入口

解析xml節點入口 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(Element root) protected void doRegisterBe

Spring原始碼追蹤4——SpringMVC View解析

這次的議題是返回json和返回普通view經過的路線差異。 --------------------------------------------------------------------------------- org.springframework.web.servlet.Dispatche

Spring原始碼追蹤3——AOP機制

研究程式碼: spring配置檔案 <cache:annotation-driven /> Java程式碼 @Cacheable(value = "test", key = "#city") public Map load(String city) {} 【cach

8-spring原始碼3.2.18解讀+spring技術內幕(IOC容器的依賴注入(反射+遞迴呼叫))

1、導讀 以上對IOC容器的初始化過程做了詳細的分析,這個初始化過程完成的主要工作是在IOC容器中建立BeanDefinition資料對映。再次過程中並沒有對Bean依賴關係進行注入,接下來將分析一下IOC容器是怎麼樣對Bean的依賴關係進行注入的。 假設當前IOC容器已

Impala原始碼分析(2)-SQL解析與執行計劃生成

Impala的SQL解析與執行計劃生成部分是由impala-frontend(Java)實現的,監聽埠是21000。使用者通過Beeswax介面BeeswaxService.query()提交一個請求,在impalad端的處理邏輯是由void ImpalaServer::query(QueryHandle

Spring原始碼閱讀-IoC容器解析

目錄 Spring IoC容器 ApplicationContext設計解析 BeanFactory ListableBeanFactory HierarchicalBeanFactory

Spring原始碼閱讀-IOC 容器解析

在Spring框架中最重要的是Spring IoC容器,它是Spring框架的核心。本文將從更高的角度來解析Sping IoC容器

Spring原始碼解析(二)——元件註冊2

    import com.ken.service.BookService; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.

Spring原始碼解析-applicationContext.xml載入和bean的註冊

Spring原始碼解析-applicationContext.xml載入和bean的註冊 萬事開頭難,就要從頭開始 Spring初始化 Spring是如何找到applicationContext.xml檔案 將xml檔

spring原始碼閱讀(2)-aop之jdk動態代理深入解析

續spring原始碼閱讀(2)-aop之j動態代理 我們從需求作為動態代理髮展的切入吧 現在有5個已經投產了的run100m的實現,我們新的需求需要監控不同實現的執行效能,如果我們針對這五個實現分別去新增效能監控的程式碼,如此就造成兩個問題: 一個是已經穩定的程式碼需要

spring原始碼閱讀(2)-aop之原始碼解析

經過一個aop術語介紹和動態代理的深入講解,我們終於可以來看aop的原始碼了,下面跟著博主一點點剖析spring aop原始碼的實現吧 我們知道spring使用中我們只要做好相關的配置,spring自動幫我們做好了代理的相關工作。 我們從三個方面入手吧 1、配置 2、

Spring原始碼深度解析-2、IOC容器的設計

前言 前面暫時結束jvm與java基礎的整理,今天開始整理spring的內容。 demo 先從一個demo開始,最開始學spring,大家都寫過這樣的demo。 //實體類 package com.ycf.test; public class User { private

Spring原始碼分析3 — spring XML配置檔案的解析流程

1 介紹 建立並初始化spring容器中,關鍵一步就是讀取並解析spring XML配置檔案。這個過程比較複雜,本文將詳細分析整個流程。先看涉及到的關鍵類。 XmlWebApplicationContext:web應用的預設Spring容器 XmlBean

Spring原始碼淺析 -- XML配置檔案的載入與解析

最近在看Spring原始碼,對配置檔案資訊的載入是使用Spring的第一步 ,而這第一步就是一個非常複雜的過程....  Spring通過定義BeanDefination來管理Ioc中的各種物件以及它們之間的依賴關係,所以載入的過程其實就是將XML檔案讀取並解析成B

Spring對註解(Annotation)處理原始碼分析2——解析和注入註解配置的資源

1.類內部的註解,如:@Autowire、@Value、@Required、@Resource以及EJB和WebSerivce相關的註解,是容器對Bean物件例項化和依賴注入時,通過容器中註冊的Bean後置處理器處理這些註解的。 2.Spring中處理註解的Bean後置處

簡單看Spring原始碼--對xml檔案解析

Spring如何解析xml配置檔案? xml配置檔案是Spring中極其重要的一部分,讓我們一起看一下spring解析xml檔案的。 以下是一段簡單的通過類路徑下的test.xml檔案載入bean獲得BeanFactory的程式碼: BeanFac

Spring原始碼閱讀筆記05:自定義xml標籤解析

  在上篇文章中,提到了在Spring中存在預設標籤與自定義標籤兩種,並且詳細分析了預設標籤的解析,本文就來分析自定義標籤的解析,像Spring中的AOP就是通過自定義標籤來進行配置的,這裡也是為後面學習AOP原理打下基礎。   這裡先回顧一下,當Spring完成了從配置檔案到Document的轉換並提取對應

2 怎樣解析XML文件或字符串

ica 代碼 clas books con value title 例如 parse 1 引用XML文件 2 使用XMLReader解析文本字符串 3 使用XMLReader方法讀取XML數據 詳細代碼實現例如以下: //初始化一個XML字符串 String xml

2 XML 以及XML解析

instance 一個 修改 字符 pretty 沒有 tom 元素 描述 一、XML 1.XML:傳輸數據和保存數據 特點:有且只有一個根元素,xml結構為樹形結構 2.XML文檔結構分析(一切皆節點) 接口Node 子接

Spring Security 4.2.3 Filters 解析

其中 validate ali 配置 生命 擁有 path str support 一、 熟悉一個模塊的最快方法 1. 配置logback文件,打印相應的debug信息 2. 根據相應的信息,打斷點查看執行結果 二、spring 使用 DelegatingFilterP