文章内容只是个人认识,用于日后回顾。
Mybatis中mapper的配置
每隔一段时间就会记不清mapper的配置,简单记录一下。
非Spring的方式
非Spring的配置,因为没有applicationContext.xml文件,所以完全依赖于mybatis-config.xml文件。记录通过该文件的mappers标签配置的三种方式:
- 依赖Java文件配置
<mapper class="a.b.c"/>
要求Java与xml文件同名同目录
- 依赖Java文件配置2
<mapper package="a.b.c"/>
要求同上
- List item
依赖xml文件
<mapper resource="a/b/c/*.xml"/>
不再要求同名和同目录
Spring配置
这时重心转移到applicationContext.xml文件。通过Spring配置,必须加上MapperScannerConfigurer,使这些对象进入ioc容器。
1.同名同路径时
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config/mybatis/mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.xingxing.storage.**.dao"/>
</bean>
2.非同名同路径时
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config/mybatis/mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:a/b/c/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.xingxing.storage.**.dao"/>
杂记classpath:与classpath*:
classpath:扫描class目录下的文件
classpath*:不仅扫描class目录下的文件,同时还扫描导入的jar包中的目录