剛剛開始學習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必須在前。
