SpringBoot启动报错Consider defining a bean of type ‘XXX’ in your configuration.
在业务模块集成公共模块的时候,将业务模块的domain层、mapper层、service层移动到公共模块,提高代码的复用性,易于维护和扩展。
改造好了之后,启动时却报错了。如上图。

大意是业务模块的controller中没有咱service层的这个bean。
先去查看包名有没有写错,位置有没有对。发现没有问题之后查看service的实现类有无@Service注解,也没有问题。

经过思考,spring没有找的这个bean。原因大概有两种:一、没有写 或者写了却没有交给spring管理(加注解) 二、有这个bean却没有被扫描到。
当下的情况应该是第二种,于是上网查找扫描bean的方法,查到
可以在启动类上加上@ComponentScan注解,手动指定启动类要扫描哪些包。

最后得以解决。

总结原因:SpringBoot在没配置@ComponentScan的情况下,默认只扫描和主类处于同包下的Class。

今后的解决思路应该先确认bean是否处于启动类所在的包或其子包下面,再去检查包名、类名、位置是否正确,之后检查注解有无。

更多推荐

Consider defining a bean of type ‘XXX’ in your configuration.