第一种

通过组件扫描注册

Servlet 3.0 提供了以下 3 个注解:

@WebServlet:用于声明一个 Servlet

@WebFilter:用于声明一个 Filter

@WebListener:用于声明一个 Listener。

要想springboot注册这些原生web组件,那么在启动类加上@ServletComponentScan注解

第二种

通过RegistrationBean注册

Spring 提供了三个它的实现类,分别用来注册 Servlet、Filter 和 Listener。

ServletRegistrationBean:Servlet 的注册类

FilterRegistrationBean:Filter 的注册类

ServletListenerRegistrationBean:Listener 的注册类

使用 @Bean 注解将 ServletRegistrationBean、FilterRegistrationBean 和 ServletListenerRegistrationBean 添加 Spring 容器中,并通过它们将我们自定义的 Servlet、Filter 和 Listener 组件注册到容器中使用。

因此,创建servet、listener、filter的类,但不需要加任何注解。

第三种

拦截器的注册

拦截器主要是对url请求进行拦截,可进行登陆验证、权限验证、性能监控、异常处理等。

拦截器功能主要是通过实现WebMvcConfigurer 接口的配置类,重写相关方法,将自定义的拦截器注入IOC容器。