SpringBoot之整合拦截器

1. 引入核心依赖包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 定义拦截器

@Component
public class RequestInterceptor extends HandlerInterceptorAdapter implements HandlerInterceptor {
    
    

    /**
     * 在请求处理之前进行调用(Controller方法调用之前)
     */
    @Override
    public synchronized boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        super.preHandle(request, response, handler);
        return true;
    }


    /**
     * 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response,
                           Object object, ModelAndView mv)
            throws Exception {
    
    
        super.postHandle(request,response,object,mv);
    }

    /**
     * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行
     * (主要是用于进行资源清理工作)
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
    
        super.afterCompletion(request, response, handler, ex);
    }


}

3. 配置拦截器

@EnableWebMvc
@Configuration
public class WebMvcInterceptorConfigurer implements WebMvcConfigurer {
    
    

    @Resource
    private RequestInterceptor requestInterceptor;

    /**
     * 添加拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        registry.addInterceptor(requestInterceptor).addPathPatterns("/**");
    }

    /**
     * 消息内容转换配置
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    
    
        // 进行相应的业务处理
    }

    /**
     * 默认静态资源处理器
     * @param configurer
     */
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    
    
        configurer.enable();
        configurer.enable("defaultServletName");
    }

    /**
     * 静态资源
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        // 进行相应的业务处理
    }

    /**
     * 跨域
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
    
    

    }

    /**
     * 页面跳转
     * @param registry
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
    
    

    }

    /**
     * 视图解析器
     * 设置请求地址前缀/后缀
     * @param registry
     */
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
    
    

    }


}

猜你喜欢

转载自blog.csdn.net/Yearingforthefuture/article/details/121901778
今日推荐