引子:这里,mapper类是指定义了数据库操作方法的接口。如前面我们讲到的UserMapper、ManagerMapper。为了让spring容器知道它们的存在和作用,在前面我们在applicationContext.xml文件中采用很麻烦的方式配置了它们。现在,让我们来改进这点。
1、下面是我们前面的配置方式:
2、我们先来看看怎么解决!
1、下面是我们前面的配置方式:
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">试想一下,如果我们有100个mapper,特别是大型项目,那我们岂不是要配置100个上面的bean?繁重的代码量可想而知。
注意:这个是value,不是class
<property name="mapperInterface" value="com.dao.UserMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="managerMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.dao.ManagerMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
2、我们先来看看怎么解决!
1中的配置方式就可以删掉了。这样的话,我们可以在com.dao包下面添加mapper类,而我们在applicationContext中的配置不会随之变化,很方便,是不是?<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--com.dao是mapper类所在的包-->
<property name="basePackage" value="com.dao"/>
<!--下面这个省略掉的话也不会出错,建议保留它-->
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>