SpringBoot多模块项目下的包和组件扫描
2023-12-24 16:43:13
问题阐述:为了简化项目代码,我们通常会使用多模块化代码进行开发,但是会出现如下问题:写代码时能够正常扫描或注入其他模块的Service
,但是启动类一启动就报错Consider defining a bean of type 'com.xiaoqian.common.service.IArticleService' in your configuration.
,意思是要让我们再去注册一个Bean
,显然是公共模块下的Bean
并没有注册成功。
项目结构示例如下图:
解决方案:在启动类上添加@ComponentScan
注解和@MapperScan
注解
@SpringBootApplication
@MapperScan("com.xiaoqian.common.mapper")
@ComponentScan({"com.xiaoqian.blog", "com.xiaoqian.common"})
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
原因解释:主程序使用@SpringBootApplication
默认配置是扫描主程序这个类所在的包及其子包下的组件类,当blog
模块需要调用公共模块common
下的Article
或者使用其Service
接口时,必须要使用注解@ComponentScan
配置组件扫描,如果还集成了MyBatis
,还需要使用@MapperScan
扫描Mapper
接口,因为@ComponentScan
默认扫描的是Spring
框架下Repository
注解的接口。
文章来源:https://blog.csdn.net/xiaoqian7758258/article/details/135182824
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!