笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述mybatis 整合spring之mapperLocations配置的问题相关的知识,希望能为你提供帮助。
今天尝试spring整合mybatis时遇到这么一个问题,就是在配置sqlSessionFactory时是否要配置mapperLocations的问题。
【mybatis 整合spring之mapperLocations配置的问题】
< bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> < property name="dataSource" ref="datasource"> < /property> < property name="typeAliasesPackage" value="https://www.songbingjia.com/android/com.fan.entity"/> < !-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。 *是个通配符,代表所有的文件,**代表所有目录下 --> < property name="mapperLocations" value="https://www.songbingjia.com/android/classpath:com/fan/mapper/*.xml" /> < !--也可以引入mybatis配置文件 < property name="configLocation" value="https://www.songbingjia.com/android/classpath:mybatis/SqlMapConfig.xml"> < /property> --> < /bean> < !-- 通过扫描的模式,扫描目录在com.lanyuan.mapper目录下的mapper--> < bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> < property name="basePackage" value="https://www.songbingjia.com/android/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的。
推荐阅读
- 初入android驱动开发之字符设备(四-中断)
- Android 数据库升级
- MacOS Sierra10.12.4编译Android7.1.1源代码必须跳的坑
- 安卓6.0编译遇到的问题
- Citrix XenApp/XenDesktop 7.15 LTSR发布
- android studio 开发经常使用快捷键使用分享
- android ndk
- cordova platform add android报错问题处理
- Android雷达图(蜘蛛网图)