摘要: 上篇文章讲了容器加载过程中会对实现了BeanDefinitionRegistyPostProcessor接口的调用,现在讲一下BeanDefinitionRegistyPostProcessor接口具体的应用,主要是对BeanDefinition的进行增删改操作。 1.创建一个类不加任何注解,也不在 阅读全文
posted @ 2021-08-01 16:08 福福猿 阅读(82) 评论(0) 推荐(0)
摘要: 前两篇文章讲了obtainFreshBeanFactory()方法,该方法主要是进行xml解析并封装成BeanDefinition,今天我们接着refresh()核心方法往下看invokeBeanFactoryPostProcessor()方法,该方法主要完成对实现了BeanDefinitionRe 阅读全文
posted @ 2021-08-01 15:21 福福猿 阅读(106) 评论(0) 推荐(0)
摘要: 咦,HashMap还会死循环么,一脸懵。在JDK1.8之前,HashMap是有可能出现死循环的,什么情况下会出现死循环呢?在put操作触发并发扩容的情况下可能会出现死循环,上源码 1.put()方法 2.进入addEntry()方法 3.进入resize()方法 4.进入transfer()方法,出 阅读全文
posted @ 2021-07-27 23:19 福福猿 阅读(141) 评论(0) 推荐(0)
摘要: 上篇文章我们讲到了自定义标签最终parse()方法需要调用具体的处理器进行解析,今天我们接着上篇文章以ComponentScanBeanDefinitionParser为例进行分析。老规矩,先上流程图 1.BeanDefinitionparserDelegate类的parseCustomElemen 阅读全文
posted @ 2021-07-27 21:55 福福猿 阅读(318) 评论(0) 推荐(0)
摘要: spring容器加载核心方法refresh中obtainFreshBeanFactory()方法的解读 上一篇文章我们初窥了spring容器加载的整体流程,现在我们来细品其中的obtainFreshBeanFactory()方法,你找了个女朋友,不能只沉浸其外表,我们还得去了解一下其内在不是,得试试 阅读全文
posted @ 2021-07-25 22:18 福福猿 阅读(111) 评论(0) 推荐(0)
摘要: 初窥spring源码 spring容器加载核心方法refresh()流程图 当你想找对象的时候,你首先在心里要对你要找的对象有一个大概的标准,然后照着这个标准去找,我们看源码也是一样,不能拿着源码包后就随便点,需要一个场景,一个目标。 1.创建一个maven项目,加入spring依赖 2.创建一个b 阅读全文
posted @ 2021-07-25 20:32 福福猿 阅读(167) 评论(0) 推荐(0)
摘要: 1.Idea kotlin插件安装 2.gradle安装 1,去官网 https://services.gradle.org/distributions/ 下载 all的包,然后解压,配置环境变量即可 2,创建环境变量GRALE_HOME,变量值为gradle解压包的路劲 3,添加到path环境 4 阅读全文
posted @ 2021-07-25 19:37 福福猿 阅读(838) 评论(0) 推荐(0)