刚刚开始学习SSM框架,对Mapper扫描加载遇到一些问题,终于解决啦。
在Eclipse中能够通过将mapper.xml文件和mapper.java文件放在同一路径下,进行扫描映射,但是IDEA并不能实现,
在spring的配置文件applicationContext.xml中,可进行mapper扫描配置
通过这项配置,就不必要在sqlMapConfig.xml文件中加载mapper映射文件了。
如下:
<!-- 配置SqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 加载mybatis的配置文件--> <property name="configLocation" value="classpath:config/mybatis/SqlMapConfig.xml"/> <!-- 数据源--> <property name="dataSource" ref="dataSource"/> <!-- mapper.xml扫描--> <property name="mapperLocations" value="classpath:config/mapper/*.xml"/> </bean> <!-- mapper扫描器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="com.youye.mapper"/> </bean>
在配置sqlSessionFactory时,配置mapperLocations属性,用来加载mapper.xml文件,mapper扫描器配置则如上所示。
mapper扫描器中的两个property的顺序不能交换,即SQLSessionFactoryBeanName必须在前。