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