spring解析xml標籤過程

2021-08-14 02:06:42 字數 3375 閱讀 5753

step 1. xmlbeanfactory

public

xmlbeanfactory(resource resource, beanfactory parentbeanfactory) throws bean***ception

step 2.xmlbeandefinitionreader

// 1. 呼叫方法 loadbeandefinitions

public

intloadbeandefinitions(resource resource) throws beandefinitionstoreexception

// 2. 呼叫方法 doloadbeandefinitions

protected

intdoloadbeandefinitions(inputsource inputsource, resource resource)

throws beandefinitionstoreexception

// 3. 呼叫方法 registerbeandefinitions

public

intregisterbeandefinitions(document doc, resource resource) throws beandefinitionstoreexception

step 3.defaultbeandefinitiondocumentreader

public

void

registerbeandefinitions(document doc, xmlreadercontext readercontext)

protected

void

doregisterbeandefinitions(element root)

protected

void

parsebeandefinitions(element root, beandefinitionparserdelegate delegate)

else }}

}else

}// 預設標籤解析

private

void

parsedefaultelement(element ele, beandefinitionparserdelegate delegate)

else

if (delegate.nodenameequals(ele, alias_element))

else

if (delegate.nodenameequals(ele, bean_element))

else

if (delegate.nodenameequals(ele, nested_beans_element))

}protected

void

processbeandefinition(element ele, beandefinitionparserdelegate delegate)

catch (beandefinitionstoreexception ex)

// send registration event.

getreadercontext().firecomponentregistered(new beancomponentdefinition(bdholder));

}}

step 4. beandefinitionparserdelegate

bean常見標籤解析

// bean常見標籤解析

public beandefinitionholder parsebeandefinitionelement(element ele, beandefinition containingbean)

//詳細解析過程

public abstractbeandefinition parsebeandefinitionelement(

element ele, string beanname, beandefinition containingbean)

bean自定義標籤解析

beandefinitionparserdelegate類

public beandefinition parsecustomelement(element ele)
public beandefinition parsecustomelement(element ele, beandefinition containingbd)
defaultnamespacehandlerresolver類

public namespacehandler resolve(string namespaceuri)
namespacehandlersupport類

public beandefinition parse(element element, parsercontext parsercontext)
abstractbeandefinitionparser類

@override

public

final beandefinition parse(element element, parsercontext parsercontext)

abstractsinglebeandefinitionparser類

protected

final abstractbeandefinition parseinternal(element element, parsercontext parsercontext)

class<?> beanclass = getbeanclass(element); // 使用者override方法

if (beanclass != null)

else

}builder.getrawbeandefinition().setsource(parsercontext.extractsource(element));

if (parsercontext.isnested())

if (parsercontext.isdefaultlazyinit())

// 呼叫自定義的解析函式

doparse(element, parsercontext, builder); // 使用者override方法

return builder.getbeandefinition();

}

深度學習訓練資料打標籤過程

對於生成的新增label,並儲存成pkl格式 在這裡只選擇兩張進行舉例。import numpy as np from pil import image import pickle import matplotlib.pyplot as plt matplotlib inline 讀取 顯示 plt...

spring解析xml文件原始碼解析

xml文件的解析有兩種形式 dom解析和sax解析,以前一直都聽說spring解析xml是dom解析,最近閒著沒事翻看了spring的原始碼,對解析過程有了一點了解,做個記錄。xmlbeandefinitionreaderdoloaddocument inputsource inputsource,...

XML元素定義(標籤)以及解析

其實就是裡面的標籤,括起來的都叫元素 成對出現。如下 文件宣告下來的第乙個元素叫做根元素 根標籤 標籤裡面可以巢狀標籤 空標籤既是開始也是結束。一般配合屬性來用。張三標籤可以自定義。xml 命名規則 xml 元素必須遵循以下命名規則 名稱可以含字母 數字以及其他的字元 名稱不能以數字或者標點符號開始...