我正在尝试创建一个新的启动器。我有一个业务模块,比如ProjectManager,它包含一些用@Component注释的类。按照教程,我创建了一个自动配置模块,其中包含一个AutoConfiguration类。首先,我尝试使用@ComponentScan查找我的业务模块中的bean。
@ComponentScan(value = {"com.foo.project"})
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
....
}
但这并不起作用。我必须像下面这样添加额外的配置类:
@Configuration
@ComponentScan(value = {"com.foo.project"})
@MapperScan(value = {"com.foo.project"})
public class ProjectConfig {
}
然后像下面这样将其导入到AutoConfiguration类中:
@Import(ProjectConfig.class)
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
....
}
可以这样做。但是根据Spring 文档。
自动配置使用标准的@Configuration类实现
所以我的问题是,为什么@ComponentScan在这里不起作用?我做错了什么吗?还是这是设计上的问题?