Spring-核心 1.bean加载过程分析

作者: 飞翔的鲲 | 来源:发表于2018-03-01 10:47 被阅读64次

    加载过程


    参考内容
    五月的仓颉,Spring源码分析的很详细
    https://www.cnblogs.com/xrq730/p/6285358.html

    • 入口
     1 ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
     2 ac.getBean(XXX.class);
    
    1. 这里第一步是装载bean到容器中,核心方法ClassPathXmlApplicationContext/refresh()
      refresh()方法中的finishBeanFactoryInitialization()方法需要getbean()完成bean的加载。
    2. 第二步是从容器中取出bean. 核心方法
      AbstractBeanFactory/doGetBean()
    • 构造方法完成bean的加载
    图片.png

    总结


    主要就是两方面的一个宏观认识

    • bean的创建
      IOC就是一个bean的集合,bean的创建也由他负责,那么什么时候创建,怎么创建bean?
      需要考虑bean的scope,一种singleton,一种prototype;还有是延迟加载属性
      singleton就是只创建一次,会放到一个map中,以便下次使用;prototype就是每次都创建一个新的实例

    • bean的属性注入
      也一样,什么时候注入,怎么注入
      在创建bean之后,先找到需要注入的属性,也就是@Autowired注解的方法,或者属性
      方法就需要调用,属性就需要修改值
      整体的思路很简单,只是为了满足丰富的功能,以及符合设计原则,代码复杂得多。还需要抽丝剥茧,一层一层深入

    相关文章

      网友评论

        本文标题:Spring-核心 1.bean加载过程分析

        本文链接:https://www.haomeiwen.com/subject/pmgdnxtx.html