1. 默认扫描
从启动类所在包开始,扫描当前包及其子级包下的所有文件
2. 指定扫描
这种情况,就是因为启动类扫描不到相关类导致的,使用 @ComponentScan 指定扫描目录即可解决,
另外如果第三方包的类也使用了@Component、@Controller、等.... 这类注解,也可通过 @ComponentScan 指定目录完成扫描。
启动类添加了filter包的扫描,可以看到问题就解决了
其它类型的扫描:上面这个启动类,我们有两个扫描都指向了filter目录,区别是
在启动类上使用@ComponentScan注解后,Spring会扫描其目录下的所有注解并管理
在启动类上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。
添加@ServletComponentScan("filter") 后,其目录下的Filter,通过@WebFilter即可完成注册