Spring+SpringMVC+MyBatis项目启动注入失败

双人鱼XKQ 发布于 2016/04/28 21:51
阅读 2K+
收藏 1

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'courseController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.yuxin.sdk.appApi.service.ICourseCommentService com.yuxin.sdk.appApi.controller.course.CourseController.courseCommentService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'courseCommentServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.yuxin.sdk.appApi.dao.mapper.ICourseCommentMapper com.yuxin.sdk.appApi.service.impl.CourseCommentServiceImpl.courseCommentMapper; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.yuxin.sdk.appApi.dao.mapper.ICourseCommentMapper] 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)}

-----------------------------------以上是错误信息---------------------------------------------------------------

项目是controller层,service层,mapper层,这样的结构。


怀疑是包扫描注解问题:

<context:component-scan base-package="com.liacd">

<context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller"/>

</context:component-scan>

于是就将上面的改为:

<context:component-scan base-package="com.liacd">

</context:component-scan>

结果service可以注入了,但是mapper不可以注入,错误是相同的。

把所有的service实现类中的方法都注释了,也注入不进去。

-----------------------------------------------------------------------------------------------------

mapper接口包扫描也配置了。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="sqlSessionTemplateBeanName" value="sqlSessionTemplateMaster" />

<property name="basePackage">

<value>

com.liacd.sdk.appApi.dao.mapper

</value>

</property>

</bean>

-------------------------------------

controller类上面的注解:@Controller

@RequestMapping(value = "/appApi/course")

里面service注解

@Autowired

private ICourseCommentService courseCommentService;

---------------

---------------


service实现类上面的注解

@Service

下面的mapper的注解:

@Autowired

private ICourseCommentMapper courseCommentMapper;

---------------

mapper上面什么都没有注解。

之前在mapper上注解试过

@Component\@Repository都不行。

---------------

mapper.xml写sql语句的,全部注释掉也没有用。




加载中
0
iBase4J
iBase4J
参考http://git.oschina.net/iBase4J/iBase4J
双人鱼XKQ
双人鱼XKQ
我clone下来好好看看,多谢指点了。
0
温安适
温安适
修改下

mapper接口配置试试

<!-- 自动扫描 -->  
        <context:component-scan base-package="com.liacd" />    
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="sqlSessionTemplateBeanName" value="sqlSessionTemplateMaster" />

<property name="basePackage" value="com.liacd"/>

</bean>



双人鱼XKQ
双人鱼XKQ
回复 @混元归一 : 994028591我的QQ
双人鱼XKQ
双人鱼XKQ
回复 @混元归一 : 检查了,没有问题的,加我qq指点一下吧,多谢了,不然我就被辞了。。。。哈哈哈,跟不上项目进度了。。。。
温安适
温安适
回复 @双人鱼XKQ : 就是查查<mapper namespace="XXX" >XXX部分是否为对应的Mapper名称
温安适
温安适
回复 @双人鱼XKQ : 查查mapper.xml里面的包路径是否正确
双人鱼XKQ
双人鱼XKQ
我试了,还是相同的错误。
下一页
0
双人鱼XKQ
双人鱼XKQ

这是我的spring的jar包,我绝对是这个包的问题。

0
温安适
温安适
你在是看下web.xml中是否加载了配置文件,其他的我也不清楚啦
双人鱼XKQ
双人鱼XKQ
加了。
0
程序猿_哲
程序猿_哲

ICourseCommentMapper courseCommentMapper;

把那个mapper对象改名,CourseCommentMapper  不要加大写的I

0
阿信sxq
阿信sxq

你注意看哈,你的mapper的限定名是

com.yuxin.sdk.appApi.dao.mapper.ICourseCommentMapper
但是你包扫描

<context:component-scan base-package="com.liacd">

<context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller"/>

</context:component-scan>
没有包含那个mapper的哦,虽然你说下面配置了,但是那只是叫mybatis初始化的,不是spring容器管理的一部分哦,而且你也需要在mapper的接口上面加上

@Repository





0
动感光波
动感光波
是不是名不一样导致的错误 
0
斯芬克斯的翅膀
斯芬克斯的翅膀

我只看到你扫描controller的配置呀,<context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller"/>,应该还有个org.springframework.stereotype.Service,我刚才也发了下我的配置你参考下吧http://my.oschina.net/u/2482146/blog/668200

0
cys1357
cys1357
碰到过一个类似的问题,我原来的项目是spring-mvc+mybatis+mina在tomcat里正常运行,后来改netty+spring-mvc+mybatis独立运行,运行也是出现类似信息,后来发现jar包少加了几个造成的,报错信息有时不是很准确
返回顶部
顶部