1. MapperScannerConfigurer
MapperScannerConfigurer自动为mapper接口在容器内创建实现类
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:ssm-test/SqlMapConfig2.xml"/>
<property name="mapperLocations" value="classpath:ssm-test/mapper/AccountMapper.xml" />
</bean>
<!-- 扫描mapper所在的包,自动为其在容器中创建实现类-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="main.solid.ssm.mapper"/>
</bean>
学习mybatis时看的是视频,老师写的代码是
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:ssm-test/SqlMapConfig2.xml"/>
</bean>
<!-- 扫描mapper所在的包,自动为其在容器中创建实现类-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="main.solid.ssm.mapper"/>
</bean>
测试后发现自动注入失败没有对应的实体类,随后想到一个问题,核心配置文件为空,那么映射xml文件怎么才能和mapper接口产生联系,然后再网上找答案,找到了在配置sqlsessionfactroy时,可以为mapperLocations配置映射xml文件,随后在MapperScannerConfigurer配置sqlSessionFactroy,测试后成功运行