springboot自动装配的实现(mybatis)

   根据大牛的思路,结合自身的理解,看看mybatis的自动装配实现。

@SpringbootApplication注解:

springboot自动装配的实现(mybatis)

 注解  @EnableAutoConfiguration的源码:(位于SpringBootApplication同级包下)

    springboot自动装配的实现(mybatis)

 查看EnableAutoConfigurationImportSelector.class:

springboot自动装配的实现(mybatis)

 

springboot自动装配的实现(mybatis)

    查看getResource()的实现:

springboot自动装配的实现(mybatis)

看下含有classpath路径的方法:

springboot自动装配的实现(mybatis)

    这里发现倒成了个绝路: 

        再去看看大牛的思路,不知道咋的直接跳这来了,继续看吧:

springboot自动装配的实现(mybatis)

springboot自动装配的实现(mybatis)

了解一下pring-boot-autoconfigure下的spring.factors:

springboot自动装配的实现(mybatis)

springboot自动装配的实现(mybatis)

    可以看到,这里面并没有指明Mybatis默认会被装载:

    不过没关系,看看mybatis的jar包下的内容:

springboot自动装配的实现(mybatis)

所以,starter负责简化配置,autoconfigure负责自动装配。  了解!!   看看代码:

    springboot自动装配的实现(mybatis)

springboot自动装配的实现(mybatis)

MybatisAutoConfiguration头部好多注解,后面都是接的前面分析过的特别重要的类。  有意思:

springboot自动装配的实现(mybatis)

这里有个拦截器的数组歪,有趣有趣:

在看看:

springboot自动装配的实现(mybatis)

springboot自动装配的实现(mybatis)

    应该是配置扫描相关类。  看看DataSoureAutoconguration呢:

springboot自动装配的实现(mybatis)

    它是原生的,默认就支持自动注入的。

springboot自动装配的实现(mybatis)

差不多可以了。  看看斗罗大陆,打打游戏,真不能看了,要死了。克制自己学习的欲望!!!