前言
近期搭建自己的手脚架项目时,control引用其它模块中的service时,启动时启动不起来,报
 Field loginService in com.*.SysLoginController required a bean of type 'com.haixin.*.SysLoginService' that could not be found.
maven多模块之间引用 启动报could not be found问题原因,解决方案,原理
1 具体问题
如图在多模块之间,
 
 其中已经在admin模块的pom中正确引入了framework
 
2 问题原因
- 模块之间的引用问题(我遇到的不是)
具体就是排查多模块之间的pom文件引入关系。看看是否引入了,是否循环依赖了等。 - 启动类位置错误
我新建的这个项目,启动类就放在了com/haixin/initadmin路径下
但是我的init-framework中的代码路径是com/haixin/initframework
这就导致了引用不到问题 
3 解决方案
- 将启动类移动到上级目录
package com.haixin; - (如果第一种方式场景不允许)在启动类上添加扫描路径 
//@ComponentScan(basePackages = {"com.haixin.initadmin.**", "com.haixin.initframework.**", "com.haixin.initcommon.**"}) 

4 原理分析
springboot启动类扫描当前包及其子包扫描
 因为最开始的启动类放在了com/haixin/initadmin路径下,那么扫描的包就是initadmin包及其子包。
 其它模块的都是在com/haixin/xxx路径下,所以扫描不到。
所以可以通过移动启动类的位置到公共的包路径下。
 如果场景不允许,还可以通过第二种方式,在启动类上手动添加自定义扫描的包路径
5 效果展示











