SpringMVC中配置 MyBatis mapperLocat
2021-12-21 本文已影响0人
想象之中丶意料之外
单数据配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 此处,mapperLocations 配置单路径 -->
<property name="mapperLocations" value="classpath:blog/gk/dao/*/*.xml"/>
<property name="configuration" ref="mybatisConfig"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor"/>
</array>
</property>
</bean>
<bean id="mybatisConfig" class="org.apache.ibatis.session.Configuration">
<property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 此处,basePackage 配置单路径 -->
<property name="basePackage" value="blog.gk.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
多数据配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 此处,mapperLocations 配置多路径 -->
<property name="mapperLocations">
<array>
<value>classpath:blog/gk/front/dao/**/*.xml</value>
<value>classpath:blog/gk/back/dao/**/*.xml</value>
</array>
</property>
<property name="configuration" ref="mybatisConfig"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor"/>
</array>
</property>
</bean>
<bean id="mybatisConfig" class="org.apache.ibatis.session.Configuration">
<property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 此处,basePackage 配置多路径 -->
<property name="basePackage" value="blog.gk.front.dao,blog.gk.back.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
- 多 mapperLocations 使用array标签+value标签完成
- 多basePackage使用 英文逗号【,】隔开即可
注意:使用 多 basePackage 配置时,需要 确保 Dao接口类不要出现重复,否则 在Service中注入 Dao接口时,会因为重复 Dao接口而注入失败。
- 解决办法:使用 @Repository("别名") 方式注解同一个类型Dao接口,然后 Service注入时,使用@Qualifier("别名") 方式注入对应的Dao接口。