记录用IDEA做maven+spring+mybatis+dubbo的分布式项目,spring依赖注入失败,导致tomcat服务起不开的问题和解决办法

版权声明:Yunf-技术源于热爱 https://blog.csdn.net/qq_42802454/article/details/83543501

1.项目大致目录结构(这个是我用来找到问题的哪个项目的结构,专门精简了原有的项目,用它也能说明问题)
测试的项目结构
说明:项目是采用maven+ssm+dubbo这样的分布式结构,相信用过dubbo开发的应该对消费者和提供者有一定的概念了,这里我就不再赘述。由于是第一次用maven做这种多模块的分布式项目,而且结构又比较复杂,于是碰到了各种各样的问题。

在这里插入图片描述在这里插入图片描述
如上两张图,spring.xml的配置和provider的实现方法中的注解都没有问题
但是启动provider的tomcat时报依赖注入失败异常
在这里插入图片描述
然后从异常中我们可以发现,一定时spring没有扫描到dao下的mapper导致注入失败,这时检查dao模块下spring配置文件看有没有配置好扫描

从上图可以看到,配置也没有问题,但是加了@atuowired注解后就是注入失败,不加的话可以注入成功,那么问题到底出在哪里了呢?
其实主要问题是两个spring配置文件,在tomcat服务器启动的时候,都要加载到才不会报错,主要是provider的web.xml没有解析到dao模块的sping配置文件.请看下图(没有解决问题时provider和dao的配置):

provider下的:
在这里插入图片描述

dao下的配置和文件结构:
在这里插入图片描述

由于provider和dao中目录结构的不对应,导致tomcat服务启动时只能加载provider下的spring配置,dao中的mapper自然不能实例化被注入。所以将配置目录结构一致然后,修改web.xml中的配置即可解决问题,如下图
解决问题后provider的配置:
在这里插入图片描述

dao的配置不需要改变,至此重启服务后,后发现问题得到解决!

猜你喜欢

转载自blog.csdn.net/qq_42802454/article/details/83543501