首页 > 编程 > Java > 正文

spring boot 注册拦截器过程详解

2019-11-26 08:24:14
字体:
来源:转载
供稿:网友

 拦截器是动态拦截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方法

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

3.创建controller进行测试

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

4.测试结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表