SpringBoot 简易拦截器实现
SpringBoot 简易拦截器实现步骤
- 创建一个拦截器类并实现
HandlerInterceptor接口 - 将拦截器注册到容器中并实现
WebMvcConfigurer接口的addInterceptors方法 - 在方法中指定拦截规则
一、创建拦截器
@Component
public class HelloInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//request.setAttribute("loginUser","张三");
Object loginUser = request.getAttribute("loginUser");
if (loginUser == null) {
return false;
}
return true;
}
}
我这里只实现了 preHandle 方法,根据实际业务需要,还可以实现 postHandle 和 afterCompletion 方法。
二、创建一个配置类实现接口方法
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HelloInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/hello1");
}
}
简单的编写了一下拦截规则。
三、在Controller控制器中进行测试
编写一个简单的Controller来测试拦截器是否生效。由拦截规则可知,除 "/hello1"外的所有路径都会被拦截器拦截。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "springboot hello";
}
@RequestMapping("/hello1")
public String hello1() {
return "springboot hello1";
}
}
四、测试结果


由图可知,拦截器确实把其余请求给拦截下来了。
补充
如果想要实现多个拦截器同时生效,步骤一和步骤二是必须的。至于拦截器的生效的 preHandle 先后顺序则是谁先注册谁先生效。
待续。。。。。。
本文介绍了如何在SpringBoot中实现一个简单的拦截器,包括创建拦截器类并实现HandlerInterceptor接口,配置拦截器规则,并在Controller中进行测试。通过拦截器,可以实现如权限验证等功能。在实际应用中,拦截器的注册顺序决定了其生效顺序。
1449

被折叠的 条评论
为什么被折叠?



