源码
文章平均质量分 92
搬砖工二狗
这个作者很懒,什么都没留下…
展开
-
Spring源码系列三--ConfigurationClassPostProcessor
上文我们讲解了refresh方法中的invokeBeanFactoryPostProcessors方法,但是对于其中的BeanDefinitionRegistryProcessor的实现类的方法还没有提及,本文将着重讲解Spring framework中对于该接口唯一的也是最为重要的实现类ConfigurationClassPostProcessor的processConfigBeanDefinitions方法。 ConfigurationClassPostProcessor @Override publ原创 2020-06-11 20:46:30 · 163 阅读 · 0 评论 -
Spring源码系列三--invokeBeanFactoryPostProcessors
本文主要讲解AnnotationConfigApplicationContext中的refresh方法,主要讲解invokeBeanFactoryPostProcessors方法,因为这个方法才是Spring bean生命周期的开始 @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepar原创 2020-06-10 16:56:59 · 226 阅读 · 0 评论 -
Spring源码系列二--Spring环境初始化
这里说的Spring环境初始化仅仅是指Spring framework的环境,而不是SpringMvc和Spring Boot,因为Spring framework实现了ioc和aop,这也是整个Spring家族的基石,Spring容器说的是广义上的容器,而不是指Spring中的单例池,Spring的单例池其实很简单,最终是通过ConcurrentHashMap来实现。但是其实Spring容器远远比这要复杂,还包括了BeanDefinition的容器,配置文件的容器,等等一系列我们的项目中所用到的数据。 S原创 2020-06-09 20:19:35 · 455 阅读 · 0 评论 -
spring源码系列一--BeanDefinition
BeanDefinition是整个Spring实现IOC的核心,也是整个Spring框架的核心,我们在阅读源码之前必须要先搞懂BeanDefinition的含义,以及相应的成员变量,BeanDefinition是一个接口,在Spring中有很多实现类,不同的实现类都有不同的功能。本文会列举我们在阅读源码过程中会遇到的BeanDefinition的实现类以及相应的成员变量的含义。 BeanDefinitionBeanDefiniton与对象的关系BeanDefinition的重要属性与BeanDefiniti原创 2020-06-04 12:56:11 · 567 阅读 · 0 评论 -
mybatis源码系列-查询操作的实现
在mybatis环境中我们定义的是接口,但是最终可以通过getMapper(classType)方法获取到该接口的实现类,然后调用数据库的查询方法,很显然是mybatis帮我们做了jdk的动态代理,本文的环境仍然与上一篇博客一致。 很显然是jdk的动态代理,下面我们就来看看mybatis如何实现代理的过程,首先调用getMapper方法,这是个空壳方法,传入的参数type就是我们需要代理的接口的class类型,this是提哦那个锅SqlSessionFactory的openSession方法获取的SqlS原创 2020-06-01 19:46:19 · 270 阅读 · 0 评论