1.新建WebAppConfig.java
package com.dm.krystal.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class WebAppConfig extends WebMvcConfigurerAdapter { @Autowired private LoginInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry){ // registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/sys/vueaa"); registry.addInterceptor(loginInterceptor).addPathPatterns("/sys/vue"); // registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/login", "/register"); } }
2.新建LoginInterceptor
package com.dm.krystal.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component public class LoginInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class); private long startTime=0l; /** * 进入controller层之前拦截请求 * @param httpServletRequest * @param httpServletResponse * @param o * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { log.info("---------------------开始进入请求地址拦截----------------------------"); startTime=System.currentTimeMillis(); return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { log.info("--------------处理请求完成后视图渲染之前的处理操作---------------"); log.info("--------------耗时:"+(System.currentTimeMillis()-startTime)+"---------------"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { log.info("---------------视图渲染之后的操作-------------------------0"); } }