1. Filter - RequestContextHolder 上下文请求
2. Filter - SpringBoot桥接原理
前言
1 | 问1:Filter实现的方式有哪几种? |
一. 前置工作:Spring上下文刷新,启动Tomcat,触发 ServletContextInitializerBeans
1 | AbstractApplicationContext.refresh |
二. 桥接:ServletContextInitializerBeans 创建(省略不必要代码)
1 | private final MultiValueMap<Class<?>, ServletContextInitializer> initializers; |
三. 最终实现:Filter 添加到 ServletContext
1 | // [1] 继承关系、与 成员变量 |
四. 创建 Filter
1 | // @Priority(333) |
五. 实现原理:@ServletComponentScan + @WebFilter(省略不必要代码)
1 | // [1] @ServletComponentScan 本质是 @Import |