spring源码学习
晓_晨
共同学习,共同成长!!
展开
-
spring源码学习(二)获取Document
这篇主要是学习doLoadBeanDefinitions函数中的doLoadDocument方法,用来获取Document对象 函数里只有2行代码。第一行代码把要解析的东西转换为Document对象,第二行通过registerBeanDefinitions行数来注册对象。进入doLoadDocument,发现它调用了DefaultDocumentLoader的loadDocument方法。原创 2017-08-25 10:29:10 · 972 阅读 · 0 评论 -
Spring源码学习环境搭建
Spring学习环境搭建本系列文章记录本人学习spring源码的全过程,也希望能给后面学习的人提供支持,大部分的坑,我都会写出来,让后来的人少走点坑,多学点东西。1.首先去github官网,下载github客户端。 clone spring源码到本地。 spring源码地址:https://github.com/spring-projects/spring-framework.git clon原创 2017-08-24 10:46:02 · 1390 阅读 · 0 评论 -
spring源码学习(四)解析和注册BeanDefinition(下)
spring源码学习解析和注册BeanDefinition,解析标签有2个主要方法,一个是parseDefaultElement另一个是parseCustomElement原创 2017-08-28 10:40:25 · 1080 阅读 · 0 评论 -
spring源码学习(三)解析和注册BeanDefinition(上)
spring通过registerBeanDefinitions来解析和注册BeanDefinition。位于XmlDefinitionsReader类中 。原创 2017-08-25 14:17:22 · 2231 阅读 · 0 评论 -
spring源码学习(一)
DefaultListableBeanFactory是bean加载的核心部分。DefaultListableBeanFactory层次结构分析,以及各个类和接口的功能。对spring的XmlBeanFactory方法的调用流程进行简单梳理。原创 2017-08-24 13:23:17 · 7072 阅读 · 0 评论 -
spring源码学习(七)Bean的加载(下)
在加载bean的过程中,会遇到循环依赖的问题。 什么是循环依赖,spring又是怎么解决的呢? 循环依赖是指类A中有类B的字段,B类中又有类A的字段。 A-》B , B-》A 这样会造成加载A的时候要先去加载B,去加载B的时候发现A还没有加载,然后又去加载A,无限循环。然后spring在单例模式的使用setter注入的循环依赖可以解决,通过一个提前暴露一个正在创建的bean,但是原型模式或者原创 2017-09-25 15:10:19 · 780 阅读 · 0 评论 -
spring源码学习(五)Bean的加载(上)
这篇文章主要介绍spring的bean的加载。这是doGetBean的方法,也是加载bean的方法。原创 2017-09-01 15:09:20 · 840 阅读 · 0 评论 -
spring源码学习(六)Bean的加载(中)
如果我们获取单例是,内存中还没有缓存,那么则进入下面这个方法public Object getSingleton(String beanName, ObjectFactory<?> singletonFactory) { Assert.notNull(beanName, "Bean name must not be null"); synchronized (this原创 2017-09-21 10:58:59 · 610 阅读 · 0 评论 -
spring源码学习(八)容器功能拓展
我们在项目上常用的一般是ClassPathXmlApplicationContext这个类. public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws B原创 2017-10-23 11:07:17 · 477 阅读 · 0 评论