我们在Spring整合Mybatis时,会将Mybatis的DAO对象交给Spring管理,一开始我们使用的是MapperFactoryBean,但是这样会有很大的弊端,所以就有了MapperScannerConfigurer。
接下来,我们先从MapperFactoryBean开始看,之前Mybatis官方没有给我们封装MapperFactoryBean这个类时,我们都是这样手写创建SqlSessionFactory对象,然后创建DAO层对象
1.手写SqlSessionFactory对象:
创建SqlSessionFactory对象:
注:(在spring框架中,创建对象分为创建复杂对象和创建简单对象,所谓简单对象就像是能通过new关键字的方式来创建的对象那个,对于这样简单的对象,spring使用
spring配置文件进行管理:
测试:
2.使用Mybatis官方提供的jar包,我们需要引入依赖
mybatis-spring
直接交给Spring管理
源码:
测试:
在创建DAO组件对象时,会有代码冗余:
所以,官方给我们封装了:
这样mapper对象就创建好了,但是随着业务的不断增加,DAO组件对象越来越多,用MapperFactoryBean,就会很麻烦,没创建一个DAO对象就得定义一次,所以就有了MapperScannerConfigurer
它会扫描我们DAO包写的所有类,创建出来的对象默认是类首字母小写,这样比较方便



