mybatis 整合spring之mapperLocations配置的问题
2018-02-23 16:50
537 查看
今天尝试spring整合mybatis时遇到这么一个问题,就是在配置sqlSessionFactory时是否要配置mapperLocations的问题。
结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。此时spring是通过识别mapper.xml中的 <mapper namespace="com.fan.mapper.UserDao"> namespace的值来确定对应的Mapper.class的。
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="datasource"></property> <property name="typeAliasesPackage" value=" 4000 com.fan.entity"/> <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。 *是个通配符,代表所有的文件,**代表所有目录下 --> <property name="mapperLocations" value="classpath:com/fan/mapper/*.xml" /> <!--也可以引入mybatis配置文件 <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property> --> </bean> <!-- 通过扫描的模式,扫描目录在com.lanyuan.mapper目录下的mapper--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.fan.mapper"></property> </bean>
结论是:如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。此时spring是通过识别mapper.xml中的 <mapper namespace="com.fan.mapper.UserDao"> namespace的值来确定对应的Mapper.class的。
相关文章推荐
- mybatis 整合spring之mapperLocations配置的问题
- mybatis 整合spring之mapperLocations配置的问题
- mybatis 整合spring之mapperLocations配置的问题
- mybatis整合spring使用MapperScannerConfigurer配置问题
- spring、springMVC、mybatis整合配置文件问题
- spring 整合mybatis时候 MapperScannerConfigure的配置问题
- Springboot整合Mybatis的CallSettersOnNulls配置问题
- 关于Spring整合mybatis时配置MapperScannerConfigurer的问题
- 关于Spring与mybatis整合无法读取配置文件的问题
- 关于spring整合mybatis的扫描器的配置问题
- spring与mybatis整合时mapper的配置问题
- spring 整合mybatis 出现解析不了配置文件的问题
- MyBatis和Spring整合配置文件笔记
- 配置MyBatis的整合遇到的问题
- Spring、Spring MVC、MyBatis整合文件配置详解
- spring+springmvc+druid+oscache+mybatis整合web.xml 配置内容
- spring boot 整合mybatis、redis、 spring mvc基本配置
- spring-mybatis整合配置
- Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程
- SSH框架整合发现的问题,必须放置在Spring中配置