我们就从Mybaits和Spring整合的一个类讲解吧, 当时我也有点懵
我们直接看这个类的源码:该类实现了
BeanDefinitionRegistryPostProcessor 接口 所以根据SpringBean的生命周期,肯定会调用
postProcessBeanDefinitionRegistry方法,我们直接看该类的这个方法
后置处理器方法:
ClassPathMapperScanner类 调用了该类的scan方法进入正题,Scan方法的调用过程
下面我来补充一张类图,不然很容易搞甍的 ,我们
上面的对象是子类对象:ClassPathMapperScanner
父类:ClassPathBeanDefinitionScanner
调用开始:子类没有重写父类的scan方法,所以这里会调用父类:
ClassPathBeanDefinitionScanner 的scan方法 ;请看下图的分析
注意注意!!!!我们进入子类的doScan方法,我当时就是这里弄混乱的
ClassPathMapperScanner子类的doScan方法,因为当前实例是子类的实例,所以会去找子类的doScan方法(根据上面图我们知道子类重写了父类的doScan方法,所以这里会调用子类的doScan方法)并调用,如果子类没有,就会去父类找,找到了调用父类的方法,没有找到就会去父类的父类继续找
注意这里是进入 ClassPathMapperScanner的doScan,上面分析的很清楚:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)