SpringMVC拦截器与SpringBoot自定义拦截器

首先我们先回顾一下传统拦截器的写法:

第一步创建一个类实现HandlerInterceptor接口,重写接口的方法。

 

第二步在XML中进行如下配置,就可以实现自定义拦截器了


SpringBoot实现自定义拦截器方法:

第一步创建一个类实现HandlerInterceptor接口,重写接口的方法,只是多了一个@Component注解,这个注解是为后面的使用时进行注入。例:

 

方法说明:

//方法执行前执行。返回true会继续执行下去,返回false取消请求

public boolean preHandle

//方法执行后执行

public void postHandle

//控制器执行完成后执行

public void afterCompletion

 

第二步在入口类的目录或者兄弟目录下创建一个类继承WebMvcConfigurerAdapter类并重写addInterceptors方法;

@SpringBootConfiguration注解表明这是一个配置类

 

SpringBoot2.0后,将WebMvcConfigurerAdapter标记为@Deprecated 已弃用,虽然目前仍然可以实现拦截器的功能,但不再推荐使用,已经有新方案替代:

2.0之前

  1. @Configuration
  2. public class WebMvcConfig extends WebMvcConfigurerAdapter {
  3.  
  4.         //...
  5.         
  6. }

2.0之后

  1. @Configuration
  2. public class WebMvcConfg implements WebMvcConfigurer {
  3.  
  4.        //...
  5.  
  6. }

 说明:

@SpringBootConfiguration注解

@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

 

到这里已经实现了自定义拦截器。运行后的到的结果如下:

 

通过对比我们可以明确的看到,SpringBoot实现自定义拦截器跟传统不一样的地方只是将XML配置变更为JAVA配置而已。

原文出处

htf2620032,  实现SpringBoot自定义拦截器, https://blog.csdn.net/htf2620032/article/details/79305208

posted @ 2019-01-08 17:16  ryelqy  阅读(689)  评论(0编辑  收藏  举报