MyBatis-Spring提供了MapperScannerConfigurer扫描指定包中的接口并将它们直接注册为MapperFactoryBean
<!-- 引入properties文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:database.properties</value>
</property>
</bean>
<!-- 配置dataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean>
<!-- 配置sqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 引用数据源组件 -->
<property name="dataSource" ref="dataSource" />
<!-- 引用mybatis配置文件 中的配置 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 配置dao,basePackage属性指定扫描的基准包 ,MapperScannerConfigurer递归扫描基准包(包括各层级子包)下所有接口,-->
<!--如果他们在sql映射文件中定义过,则将他们动态注册为MapperFactoryBean, 批量产生映射器实现类 -->
<!-- 配置要求:映射的命名空间namespace和映射器接口的名称相同、映射元素的id和映射接口的方法相同 -->
<!-- 业务组件的注入可通过@Autowired或者@Resource -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.mySmbms.dao"></property>
</bean>