1.定义拦截器,
spring mvc中定义拦截器,是extends HandlerInterceptorAdapter类,这个类在spring boot(本人用的spring boot2.0) 中已经标记为@Deprecated。
spring boot中定义拦截器,是implements HandlerInterceptor接口。重写方法和之前是没什么区别的。
import com.springboot03.indiabotprj03.annotation.AuthWhite;
import com.springboot03.indiabotprj03.encrypt.SessionUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
@Component(value = "indiaInterceptor")
public class IndiaInterceptor implements HandlerInterceptor {
private final Logger logger = Logger.getLogger(IndiaInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) throws Exception {
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) throws Exception {
}
}
2.配置拦截器
spring mvc,是在spring mvc 的配置文件中引入拦截器。
spring boot,个人理解是把自己定义的拦截器注册到boot的拦截器注册中心
@Configuration
public class WebConfigure extends WebMvcConfigurationSupport {
@Resource
IndiaInterceptor indiaInterceptor;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(indiaInterceptor).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
这竟然有注册中心的概念,可惜没用过微服务。。。。。。。
这个时候发现不读源码,已经理解不了了。。。。。。。