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);
}
}