zoukankan      html  css  js  c++  java
  • 2.1.1_BeanFactory是怎么加资源的

    其实这是个伪命题,BeanFactory本身并不能主动加载Bean配置。

    BeanDefinitionReader持有BeanFactory引用,读取配置资源并解析成BeanDefinition,然后注册到BeanFactory中。

    一个最简单的BeanFactory的使用样例只需要几行代码:

    1 BeanFactory beanFactory = new DefaultListableBeanFactory();
    2 Resource resource = new ClassPathResource("beans.xml");
    3 XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
    4 reader.loadBeanDefinitions(resource);

    示意图:

    整个处理过程:

    1、创建DefaultListableBeanFactory

    2、创建配置文件资源ClassPathResource

    3、创建XmlBeanDefinitionReader,内部持有BeanFactory的引用;

    4、XmlBeanDefinitionReader读取Resource数据流;

    5、通过DefaultDocumentLoaderxml数据流进行解析、验证,生成DOM

    6、通过DefaultBeanDefinitionDocumentReaderDOM进行处理并生成BeanDefinition

    7、XmlBeanDefinitionReaderBeanDefinition注册到BeanFactory

    这样BeanFactory中就有了配置文件中的Bean定义,但此时BeanFactory中并没有实际的Bean对象生成,通过getBean(string name)会触发的Bean创建。

  • 相关阅读:
    Hibernate关联映射
    mysql 外键约束
    巩固JavaSE基础--IDEA完成实战项目
    PHP--选择排序
    PHP--冒泡排序
    vscode调试单个PHP脚本文件
    Vscode下调试基于Homestead环境的Laravel框架
    Python Web开发
    Python之UDP编程
    Python之TCP编程
  • 原文地址:https://www.cnblogs.com/jiaoqq/p/7127419.html
Copyright © 2011-2022 走看看