如果可以使用@Component注释所有bean,那么@ComponentScan注释有什么用?

时间:2018-08-14 20:19:42

标签: spring

为什么我们需要编写@Component批注,然后在Spring中再次编写@ComponentScan?我们可以使用特殊的包定义@ComponentScan,但是我可以想象一个场景,当我们将一个类注释为@Component并从搜索中排除它时。

1 个答案:

答案 0 :(得分:2)

简单地说,@Component用于将类标记为在@componentscan期间需要标识的bean,

@componentScan仅查找带有@Component注释的bean,并为其创建bean。

通常,@ComponentScan将扫描所有类和子包类,但是如果其他包中有任何类不是主包的子包,则应手动将它们添加到@ComponentScan

如果您查看文档,所有@Controller@Service都用@Component注释

@Component
public @interface Controller {
…
}
@Component
public @interface Controller {
…
}