mybatis-spring 中配置mapperLocations 的问题有哪些?
myBatis文件
-->
在配置 中如何指定多个包 比如配置到 classpath:code/dy包/mapping/*.xml,求大神搭救 展开
1.<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"></property><property
name="typeAliasesPackage" value="com.fan.entity"/><!
2.-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
3.*是个通配符,代表所有的文件,**代表所有目录下:
4.<property name="mapperLocations" value="classpath:com/fan/mapper/*.xml" />
<!
5.--也可以引入mybatis配置文件
6.<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml
></property> --></bean><!
7.-- 通过扫描的模式,扫描目录在
com.lanyuan.mapper目录下的mapper--><bean class="org.mybatis.spring.mapper.
MapperScannerConfigurer"><property name="basePackage" value="com.fan.mapper
"></property></bean>
结论是:
1.如果Mapper.xml与Mapper.class在同一个包下且同名,spring扫描Mapper.class的同时会自动扫描同名的Mapper.xml并装配到Mapper.class。
2.如果Mapper.xml与Mapper.class不在同一个包下或者不同名,就必须使用配置mapperLocations指定mapper.xml的位置。
3.此时spring是通过识别mapper.xml中的
<mapper namespace="com.fan.mapper.UserDao"> namespace的值来确定对应的Mapper.class的。