问题描述
使用若依框架开发项目时,自定义模块来存放service,mapper等,controller层仍放在admin中,在controller中进行自动注入时却显示找不到bean,查看service发现也加了@Service注解。
图片如下:
原因分析:
springboot默认注解扫描为启动类同级及其子包(不同模块的相同包名也属于同一包),新增模块后如果其包名与启动类的包名不一致或者不是其子包,注解扫描是不包含的,就要指定注解扫描的的包,这样自动注入才能找到bean。
解决方案:
在RuoyiApplication启动类上面加上注解扫描@ComponentScan(basePackage={...})注解,并指定扫描的所有包(加注解后默认包扫描机制失效,所以要写入所有包),如图:
这样就能识别bean,实现依赖注入了。