1.1spring启动源码分析(ClassPathXmlApplicationContext)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c_royi/article/details/85158667

spring启动源码分析(ClassPathXmlApplicationContext)

Applicantioncontext uml图

在这里插入图片描述

  1. ClassPathXmlApplicationContext xml 配置文件项目中的路径
  2. FileSystemXmlApplicationContext xml 配置文件在系统中的路径
  3. AnnotationConfigApplicationContext 注解类启动方式

BeanFactory uml图

在这里插入图片描述

  1. ApplicationContext 继承了 ListableBeanFactory,这个 Listable
    的意思就是,通过这个接口,我们可以获取多个 Bean,大家看源码会发现,最顶层 BeanFactory 接口的方法都是获取单个 Bean
    的。
  2. ApplicationContext 继承了 HierarchicalBeanFactory,Hierarchical
    单词本身已经能说明问题了,也就是说我们可以在应用中起多个 BeanFactory,然后可以将各个 BeanFactory
    设置为父子关系。
  3. AutowireCapableBeanFactory 这个名字中的 Autowire 大家都非常熟悉,它就是用来自动装配 Bean用的,但是上图ApplicationContext 并没有继承它,不过不用担心,不使用继承,不代不可以使用组合,如果你看到ApplicationContext 接口定义中的最后一个方法 getAutowireCapableBeanFactory()
  4. ConfigurableListableBeanFactory 也是一个特殊的接口,看图,特殊之处在于它继承了第二层所有的三个接口,而ApplicationContext 没有。这点之后会用到。

猜你喜欢

转载自blog.csdn.net/c_royi/article/details/85158667