Spring 整合 MyBatis,Mapper注入失败
2017-06-24 12:11
846 查看
出现问题,分析原因
今天拿出在做的项目,启动运行,报错:org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.liu.dao.UserInfoMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
打开Service层代码,注入UserInfoMapper的代码没有异常,于是我脑海中想到可能是下面的几个问题:
spring-mybatis整合配置文件没有扫描到
没有扫描到mapper.xml文件
mapper.java和mapper.xml之间没有联系起来
spring-mybatis整合配置文件中,配置的属性值在properties文件中,但是该properties文件没有扫描到或者是值错误(但是这个一般控制台都会锁定到属性值错误,可能性不大)
解决问题
1、检查spring-mybatis配置文件,在web.xml中已经配置扫描到了,谨慎起见还是检查一下:ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:META-INF/config/spring/spring-mybatis.xml"); UserInfo bean = ac.getBean(UserInfo.class); bean.getUserInfoById(10001L);
在service的初始化方法中,执行上述代码,是没有问题的,所以配置文件是扫描到了的,排除第一个原因
2、 检查spring-mybatis配置文件
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:META-INF/config/mybatis/sqlmap.xml" /> <property name="mapperLocations" value="classpath:com/liu/dao/mapping/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.liu.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
没有问题
3、检查UserInfoMapper.java和UserInfoMapper.xml文件,发现UserInfoMapper.xml中对po的配置路径是:
com.liu.po.com.liu.po.UserInfoMapper.java
所以问题出现在这里,mapper之间没有联系起来,导致注入失败,这个问题的产生是上一次项目关闭前,手贱改了一下包路径,IDEA却给我重复了路径。。
相关文章推荐
- springMVC mybatis整合dao接口(mapper接口) spring注入失败
- spring mybatis 整合后mapper接口注入失败问题
- springMVC mybatis整合dao接口(mapper接口) spring注入失败
- springboot整合mybatis mapper注入时显示could not autowire的解决
- spring+springmvc整合mabytis时mapper注入失败问题解决方法
- SpringBoot+Mybatis整合报,service注入失败,dao注入失败,
- Mybatis与Spring的mapper代理整合方法
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring - 大新博客
- 基于Maven的Mybatis+spring+springMVC框架整合(mapper代理方式)
- (五)mybatis学习之mapper代理开发方式及与spring整合
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- 在SSH整合中,关于spring依赖注入失败的问题
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Spring+Mybatis整合时,全局扫描*mapper.xml
- mybatis整合ss的时候,无法autowire使用mapper的自动注入,找不到bean:NoSuchBeanDefinitionException
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- mybatis与spring3.1整合(org.mybatis.spring.mapper.MapperFactoryBean)
- Spring+SpringMVC+Mybatis大整合(SpringMVC采用REST风格、mybatis采用Mapper代理)