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创建。

  • 相关阅读:
    PHP+JQUEY+AJAX实现分页
    Flume知识扩展
    Flume高级之自定义MySQLSource
    Flume监控之Ganglia
    Flume 概述/企业案例
    Yarn (转自之乎者也)
    MapReduce如何解决数据倾斜?
    JVM调优
    Hive性能优化
    HBase的二级索引
  • 原文地址:https://www.cnblogs.com/jiaoqq/p/7127419.html
Copyright © 2011-2022 走看看