欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

spring boot 注册拦截器过程详解

时间:2021-04-30 10:11:51|栏目:JAVA代码|点击:

 拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。

如何在spring boot中添加拦截器?

1.首先自己实现一个拦截器

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor{
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("preHandler");
    return true;//这里一定要返回true要不然后面的不会执行
  }

  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("postHandler");
  }

  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("afterHandler");
  }
}

2.实现WebMvcConfigurer接口并重写addInterceptors方法

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(myInterceptor()).addPathPatterns("/**");//将自己的拦截器注册到spring中并添加拦截的路径
  }
  @Bean
  MyInterceptor myInterceptor(){
    return new MyInterceptor();//提供自己的拦截器的bean
  }
}

3.创建controller进行测试

@RestController
public class HelloController {
  @GetMapping("gethello")
  public String getHello(){
    System.out.println("get hello");
    return "get hello";
  }
}

4.测试结果

上一篇:java获取当前时间的四种方法代码实例

栏    目:JAVA代码

下一篇:Java中IO流简介_动力节点Java学院整理

本文标题:spring boot 注册拦截器过程详解

本文地址:http://www.codeinn.net/misctech/111750.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有