参考博客:https://blog.csdn.net/lyc_liyanchao/article/details/83004510
XmlBeanDefinitionReader:
protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource)
throws BeanDefinitionStoreException {
try {
//将InputSource转换为DOM对象,解析过程由documentLoader实现
Document doc = doLoadDocument(inputSource, resource); //代码1
//主线
//这里是启动对Bean定义解析的详细过程,该解析过程会用到Spring的Bean配置规则,注册开始
return registerBeanDefinitions(doc, resource);
}
catch (BeanDefinitionStoreException ex) {
...
}
}
代码1,将inputSource转换为Document对象。执行如下操作:
private DocumentLoader documentLoader = new DefaultDocumentLoader();
protected Document doLoadDocument(InputSource inputSource, Resource resource) throws Exception {
return this.documentLoader.loadDocument(inputSource, getEntityResolver(), this.errorHandler,
getValidationModeForResource(resource), isNamespaceAware())