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 元素必須遵循以下命名規則 名稱可以含字母 數字以及其他的字元 名稱不能以數字或者標點符號開始...