小编Don*_*ing的帖子

@ComponentScan在Spring启动AutoConfiguration类中不起作用?

我正在尝试创建一个新的启动器.我有一个业务模块,比如ProjectManager,它包含一些用@Component注释的类.在本教程之后,我创建了一个autoconfigure模块,它包含一个AutoConfiguration类.首先,我尝试使用@ComponentSan在我的业务模块中查找bean.

@ComponentScan(value = {"com.foo.project"})
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
    ....

}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我必须添加其他配置类,如下所示:

@Configuration
@ComponentScan(value = {"com.foo.project"})
@MapperScan(value = {"com.foo.project"})
public class ProjectConfig {
}
Run Code Online (Sandbox Code Playgroud)

然后将其导入AutoConfiguration类,如下所示:

@Import(ProjectConfig.class)
@ConditionalOnClass({Project.class})
@Configuration
public class ProjectAutoConfiguration {
    ....

}
Run Code Online (Sandbox Code Playgroud)

这样可行.但根据春季文件.

自动配置使用标准的@Configuration类实现

所以我的问题是,为什么@ComponentScan在这里不起作用?我做错了什么?或者它是按设计的?

java spring spring-boot

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1