博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 拦截器
阅读量:6456 次
发布时间:2019-06-23

本文共 1868 字,大约阅读时间需要 6 分钟。

hot3.png

简单地说 拦截器 就像是一个 门卫,让你进,你就可以进,不让你进,你就进不去

实现自定义拦截器只需要3步: 

1、创建我们自己的拦截器类并实现 HandlerInterceptor 接口。 
2、创建一个类继承WebMvcConfigurerAdapter,并重写 addInterceptors 方法。 
2、实例化我们自定义的拦截器,然后将对像手动添加到拦截器链中(在addInterceptors方法中添加)。 
PS:本文重点在如何在Spring-Boot中使用拦截器,关于拦截器的原理请大家查阅资料了解。

代码示例:

InterceptorConfig.java

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import org.springframework.boot.SpringApplication;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class InterceptorConfig implements HandlerInterceptor {

    
    public static void main(String[] args) {
        SpringApplication.run(InterceptorConfig.class, args);
    }

    

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        // TODO Auto-generated method stub         写自己需要的方法
        return true;//可以通过false的话  就不让通过
    }

    

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // TODO Auto-generated method stub
        
    }

    

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // TODO Auto-generated method stub
        
    }

}

MyWebConfig.java

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 MyWebConfig extends WebMvcConfigurerAdapter  {
    
    
    public void addInterceptors(InterceptorRegistry registry) {
        // 多个拦截器组成一个拦截器链
        // addPathPatterns 用于添加拦截规则
        // excludePathPatterns 用户排除拦截
        registry.addInterceptor(new InterceptorConfig()).addPathPatterns("/apply/**");//自己的接口
        super.addInterceptors(registry);
    }

}

 

转载于:https://my.oschina.net/zhangyaxin/blog/892218

你可能感兴趣的文章
Mac php版本切换
查看>>
php在nginx下输出缓冲
查看>>
编写一个程序,判断输出一个字符串中大写英文字母数,和小写英文字母数,和其他非英文字母数...
查看>>
Java包(package)的命名规范,java中package命名规则
查看>>
关于Activity.startActivityForResult(Intent ,int )使用
查看>>
QPA
查看>>
Ionic基于HTML5的App开发-起手配置
查看>>
Shell脚本获取格式化日期与时间
查看>>
docker-compose
查看>>
adb 基本操作
查看>>
(总结)CentOS Linux搭建SVN Server配置详解
查看>>
osc Android
查看>>
注解的继承结果
查看>>
Java 复习 —— OOP
查看>>
Redis String
查看>>
CentOS-7简易SNAT配置
查看>>
配置Java环境变量
查看>>
AI考拉技术分享会--Node.js 异步编程
查看>>
USACO Barn Repair
查看>>
JNA工作笔记二
查看>>