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之前
- @Configuration
- public class WebMvcConfig extends WebMvcConfigurerAdapter {
- //...
- }
2.0之后
- @Configuration
- public class WebMvcConfg implements WebMvcConfigurer {
- //...
- }
说明:
@SpringBootConfiguration注解
@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类, 并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
到这里已经实现了自定义拦截器。运行后的到的结果如下:
通过对比我们可以明确的看到,SpringBoot实现自定义拦截器跟传统不一样的地方只是将XML配置变更为JAVA配置而已。
原文出处
htf2620032, 实现SpringBoot自定义拦截器, https://blog.csdn.net/htf2620032/article/details/79305208