SpringBoot增加自定义过滤器Filter
一、自定义过滤器
- 实现Filter接口。
- 通过@WebFilter注解,注册过滤器(“urlPatterns”:需要被过滤的请求路径,“filterName”:过滤器名称)。
import lombok.extern.slf4j.Slf4j;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/**
- @author Andon
- @date 2019/11/28
*/
@Slf4j
@WebFilter(urlPatterns = "/*", filterName = "customFilter")
public class CustomFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.info("doFilter start!!");
HttpServletRequest request = (HttpServletRequest) servletRequest;
String sessionId = request.getSession().getId();
System.out.println("sessionId:" + sessionId);
log.info("doFilter end!!");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
二、SpringBoot启动类
- 添加@ServletComponentScan注解,项目启动自动扫描Servlet组件(Filter属于Servlet组件)。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@ServletComponentScan
@SpringBootApplication
public class CoinMarketTechnicalAnalysisIndicatorsAlgorithmApplication {
public static void main(String[] args) {
SpringApplication.run(CoinMarketTechnicalAnalysisIndicatorsAlgorithmApplication.class, args);
}
}