拦截器与过滤器(三)过滤器集成与使用
一、使用
1、springboot3以下
自定义过滤器类实现Javax.serlvet.Filter接口(对应servlet-api.jar),加上Component注解可以被扫描到即可,不需要其他的配置了。demo:
package com.demo.filter;import org.springframework.stereotype.Component;import javax.servlet.*;
import java.io.IOException;
@Component
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.print("filter");chain.doFilter(request,response);}@Overridepublic void destroy() {}
}
2、springboot3以上
版本升级旧包不兼容
import javax.servlet.*;
.切换为spring自带的新包
import jakarta.servlet.*;
package org.example.filter;import jakarta.servlet.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;import java.io.IOException;@Order(1)
@Slf4j
@Component
public class OtherFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {log.info("其他filter开始");log.info("其他filter结束");doFilter(servletRequest, servletResponse, filterChain);}
}