springboot 使用Filter

1. 创建 Filter 类,实现 Fitler接口

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException; /** * @Auther: Dandwj * @Date: 2019/3/20 23:00 * @Description: */ @WebFilter(filterName = "myFilter",urlPatterns = "/login/*") public class AuthorFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //处理请求  filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }

 然后加上 @WebFilter 注解

2. 在启动类上加上@ServletComponentScan(basePackages = "pers.dandwj.cheerful.service")注解   MyFilter 是在 basePackages包下

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@ServletComponentScan(basePackages = "pers.dandwj.cheerful.service")
public class CheerfulWxApiApplication {

    public static void main(String[] args) {
        SpringApplication.run(CheerfulWxApiApplication.class, args);
    }

}

扩展:

三种拦截器比较:

  • Filter 是 java web 里面的,肯定获取不到 spring 里面 Controller 的信息。
  • Interceptor、Aspect 是和 spring 相关的,所以能获取到 Controller 的信息。

猜你喜欢

转载自www.cnblogs.com/Dandwj/p/10582227.html
今日推荐