springboot 使用如何使用 Filter
时间: 2023-07-20 19:16:28 浏览: 50
在Spring Boot中使用Filter,可以通过两种方式进行配置:
1. 注解方式
可以使用@WebFilter注解声明Filter,然后通过@ServletComponentScan注解启用自动扫描。
示例代码如下:
```
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "myFilter", urlPatterns = "/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 初始化操作
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 过滤操作
chain.doFilter(request, response);
}
@Override
public void destroy() {
// 销毁操作
}
}
```
2. 配置类方式
可以创建一个配置类,实现WebMvcConfigurer接口,在其中重写addInterceptors方法,并添加FilterRegistrationBean注册Filter。
示例代码如下:
```
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.Filter;
@Configuration
public class MyFilterConfig {
@Bean
public FilterRegistrationBean<Filter> myFilter() {
FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
registration.setFilter(new MyFilter());
registration.addUrlPatterns("/*");
registration.setName("MyFilter");
registration.setOrder(1);
return registration;
}
}
```
其中,addUrlPatterns方法设置Filter的拦截路径,setName方法设置Filter的名称,setOrder方法设置Filter的执行顺序。