码迷,mamicode.com
首页 > 其他好文 > 详细

淘淘商城 @Autowired 装配失败

时间:2018-04-07 13:55:35      阅读:455      评论:0      收藏:0      [点我收藏+]

标签:遇到   alt   目的   eol   就是   扫描   web.xml   找不到   注解   

最近做项目的时候遇到这样一个bug,如下图:

技术分享图片

附上Conreoller代码

技术分享图片

 

创建controller 的 bean失败. 原因是找不到Itemservice的bean 也就是说@Autowrited装配失败 

 于是我检查了Service层,接口没问题

技术分享图片

检查了ServiceImpl也没问题

技术分享图片

苦思冥想,一遍又一遍的测试,没解决,就陷入了迷茫之中。

我就在网上疯狂找资料,无意间发现一个视频,讲的是spring 和speingmvc父子容器的关系的视频,感觉和@Autowirted有关系,

仔细想了想应该是speing 容器和springmvc容器扫描包的异常才导致刚这个bug,因为spring容器里有springmvc容器,controller就在springmvc这个容器里面,

这里的conreoller的bean创建失败,那应该就是容器没有扫描到controller,  如下图

技术分享图片

我们在ServiceImpl.java中 的 @Service注解就是标识一个bean,在controller中的@Controller注解也是标识一个bean,

Controller层的@Autowirted注解就是将Service的bean注入,但是这个过程中会有扫描包的问题,如果扫描不到包,就会报装配失败的bug

此时我看了一下我的springmvc.xml 如下

技术分享图片

springmvc是扫描controller层的包

又看了一下Service层的 applicationContext-service.xml配置  如下

技术分享图片

这扫描的是service层的包

又看了一下web.xml的容器配置

技术分享图片

spring容器的配置就是上图这三个application文件

技术分享图片

springmvc容器的配置就是上面的springmvc.xml

父容器在上面,子容器在下面,那就可以先把service dao 层全放到子容器里面,也就是说在springmvc的配置里面扫描com.taotao所有的包,这样就不会出现装配失败的问题,修改配置如下图

技术分享图片

重启之后,问题解决

技术分享图片

下图是前端页面:

技术分享图片

 

淘淘商城 @Autowired 装配失败

标签:遇到   alt   目的   eol   就是   扫描   web.xml   找不到   注解   

原文地址:https://www.cnblogs.com/zx947240023/p/8732975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!