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 的信息.
来源: http://www.bubuko.com/infodetail-2996613.html