springboot创建拦截器interceptor

springboot创建自定义拦截器

在springboot中创建拦截器很方便,首先创建自定义拦截器,自定义拦截器需要实现HandlerInterceptor接口,然后根据自己的需求去重写相应的方法。

下面例子自定义两个拦截器,TestInterceptor1和TestInterceptor2

package com.test.demo.interceptor;

import lombok.extern.slf4j.Slf4j;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * 自定义拦截器TestInterceptor
 */
@Slf4j
public class TestInterceptor1 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.info("======TestInterceptor1 preHandle, 调用controller之前======");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
        log.info("======TestInterceptor1 postHandle, 调用controller之后======");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
        log.info("=======TestInterceptor1 afterCompletion, 视图渲染之后=======");
    }
}
package com.test.demo.interceptor;

import lombok.extern.slf4j.Slf4j;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * 自定义拦截器TestInterceptor
 */
@Slf4j
public class TestInterceptor2 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.info("======TestInterceptor2 preHandle, 调用controller之前======");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
        log.info("======TestInterceptor2 postHandle, 调用controller之后======");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
        log.info("=======TestInterceptor2 afterCompletion, 视图渲染之后=======");
    }
}

然后注册该拦截器即可

启动项目,该拦截器即生效

posted @ 2021-12-08 10:41  wang_longan  阅读(324)  评论(0编辑  收藏  举报