这块主要把上一步的 InputSource 解析成 Document 对象。
接下来进入,这里利用 SAX 解析 XML 得解析后的结果,然后就开始做 Bean 的注册动作;
(所以这块需要了解下如何做文档的解析的,见 附录 1 - 解析 XML 文件)
protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource)
throws BeanDefinitionStoreException {
try {
// SAX文档解析
Document doc = doLoadDocument(inputSource, resource);
// 注册,返回注册的Bean的数量
int count = registerBeanDefinitions(doc, resource);
if (logger.isDebugEnabled()) {
logger.debug("Loaded " + count + " bean definitions from " + resource);
}
return count;
} catch (BeanDefinitionStoreException ex) {
throw ex;
} catch (SAXParseException ex) {
throw new XmlBeanDefinitionStoreException(resource.getDescription(),
"Line " + ex.getLineNumber() + " in XML document from " + resource + " is invalid", ex);
}
.... 很多异常的抛出
}