前言
:在查看springBoot源码的过程中,遇到了这个问题,上网查了一些资料,理解了一些,这里顺便把这个问题给记录一下。
在springBoot调用Refresh方法里面 ,有一个叫invokeBeanFactoryPostProcessors的方法【图1】

在它里面会判断当前的beanFactory是否是BeanDefinitionRegistry的示例【图2】,这里的入参显示的是ConfigurableListableBeanFactory

查看两者的继承以及实现关系,发现两者并没有太大联系【图三、图4】,于是进行了资料查询。


结果:
实体类DefaultListableBeanFactory既实现了ConfigurableListableBeanFactory接口,也实现了BeanDefinitionRegistry接口,而我们从AnnotationConfigServletWebApplicationContext中调用obtainFreshBeanFactory方法【图5】,返回给我们的其实就是DefaultListableBeanFactory对象【图6】。只不过框架用它的父类ConfigurableListableBeanFactory接住了这个对象,导致我在后续判断实例的场景中 误以为传入的是ConfigurableListableBeanFactory,也就导致了问题的产生。


疑问:
一个对象ClassAB继承两个不同的接口FaceA、FaceB,调用instanceof(B b)方法判断b instanceof A ,当传入对象是ClassAB时,会返回结果true吗?
验证



经过一个简单的测试,发现返回结果为true,这也就验证了前面的猜想。
不过到最后还想问一下各位大佬,上面这种机制在java里面有没有一个专业的名词来解释?







![[附源码]SSM计算机毕业设计-东湖社区志愿者管理平台JAVA](https://img-blog.csdnimg.cn/20cd90f1b0cb406282fa3a84455e951d.png)









![[附源码]java毕业设计网络身份认证技术及方法](https://img-blog.csdnimg.cn/a14b55f6372d43f2b1172f8863b5ba1f.png)
