Spring Boot 扫描机制说明

1. 默认扫描

从启动类所在包开始,扫描当前包及其子级包下的所有文件

2. 指定扫描

这种情况,就是因为启动类扫描不到相关类导致的,使用 @ComponentScan 指定扫描目录即可解决,

另外如果第三方包的类也使用了@Component、@Controller、等.... 这类注解,也可通过 @ComponentScan 指定目录完成扫描。

启动类添加了filter包的扫描,可以看到问题就解决了

其它类型的扫描:上面这个启动类,我们有两个扫描都指向了filter目录,区别是

  在启动类上使用@ComponentScan注解后,Spring会扫描其目录下的所有注解并管理

  在启动类上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。

添加@ServletComponentScan("filter") 后,其目录下的Filter,通过@WebFilter即可完成注册

原文地址:https://www.cnblogs.com/ghostnet/p/14986642.html