<mybatis:scan>与<MapperScannerConfigurer/>
使用Mybatis作为持久层的框架,对dao层的bean对象的注解扫描有两种方式:<mybatis:san>、<MapperScannerConfigurer>
一:<mybatis:scan>:
该标签是mybatis提供的一个注解扫描标签,通过自动扫描注解的机制,创建每个dao接口定义的bean 。
需要在applicationContext.xml中添加配置:<mybatis:scan base-package="com.xxx.blog.mapper" />
二:<MapperScannerConfigurer/>
MapperScannerConfigurer是mybatis提供的类,用来实现注解扫描的功能
我们可以配置MapperScannerConfigurer:用Dao接口生成实现类对象。需要在applicationContext.xml配置文件里添加该bean的定义:配置如下:
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 自动扫描dao包下面的接口,并且实例化这些接口 -->
<property name="basePackage" value="com.xxx.blog.mapper"/>
</bean>
总结:
这里的basePackage
与<mybatis:scan/>
的base-package
的含义一致,bean的命名规则也是一样的,所以这两种方式等价。任选一种方式即可。
如果启动了自动扫描注解,则在spring配置文件中不再需要dao接口的bean定义了。