拦截器其实功能上跟过滤器一样,也是AOP切面编程的一种实现方式,只不过它能更方便的充分调用Service方法,可以注入 Controller层,Service层,Mapper层等等进行逻辑判断,因为拦截器是基于Java反射机制创建并调用的,属于SpringMvc子容器,父容器完成初始化完成后才进行创建,所以可以注入和调用所有父容器中的service
假设有个需求:根据某个入参ID判断是否1.是的话才允许调用并且同时记录请求响应时间,不是的话就返回
(1)自定义一个拦截器:
package com.example.maze.util;
import com.example.maze.service.implement.TestService;
import org.springframework.beans.factory.annotation.Autowired;
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;
public