这块主要把上一步的 InputSource 解析成 Document 对象。

    接下来进入,这里利用 SAX 解析 XML 得解析后的结果,然后就开始做 Bean 的注册动作;
    (所以这块需要了解下如何做文档的解析的,见 附录 1 - 解析 XML 文件

    1. protected int doLoadBeanDefinitions(InputSource inputSource, Resource resource)
    2. throws BeanDefinitionStoreException {
    3. try {
    4. // SAX文档解析
    5. Document doc = doLoadDocument(inputSource, resource);
    6. // 注册,返回注册的Bean的数量
    7. int count = registerBeanDefinitions(doc, resource);
    8. if (logger.isDebugEnabled()) {
    9. logger.debug("Loaded " + count + " bean definitions from " + resource);
    10. }
    11. return count;
    12. } catch (BeanDefinitionStoreException ex) {
    13. throw ex;
    14. } catch (SAXParseException ex) {
    15. throw new XmlBeanDefinitionStoreException(resource.getDescription(),
    16. "Line " + ex.getLineNumber() + " in XML document from " + resource + " is invalid", ex);
    17. }
    18. .... 很多异常的抛出
    19. }