SpringBoot中拦截器的使用
2020-06-29 04:26
330 查看
1.SpringMVC拦截器
SpringMVC中的拦截器(Interceptor)类似Servlet中的过滤器(Filter),在实际开发中用处很多,如:日志处理、用户登录状态拦截、安全拦截等等。SpringBoot内部集成的是SpringMVC控制框架,所以使用方式和在SpringMVC中没什么区别,主要配置方式有所不同。
2.具体实现
1.创建SpringBoot项目,添加一个web依赖
[code]<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2.定义拦截器,创建MyInterceptor类实现HandlerInterceptor接口并实行3个方法,并将该类注册为一个bean交给Spring来管理。
[code]//自定义拦截器 @Component public class MyInterceptor implements HandlerInterceptor { @Override //被拦截的请求执行之前执行 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("执行了preHandle"); return true; } @Override //被拦截的请求执行之中执行 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("执行了postHandle"); } @Override //被拦截的请求执行之后执行 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("执行了afterCompletion"); } }
3.创建WebMVCConfig类,实现WebMvcConfigurer接口,重写addInterceptors方法,此类相当于SpringMVC.xml配置文件。
[code]@Configuration public class WebMVCConfig implements WebMvcConfigurer { @Autowired MyInterceptor myInterceptor;//自定义的拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(myInterceptor) .addPathPatterns("/**")//需要拦截的路径 .excludePathPatterns("/doLogin");//除去的路径 } }
4.创建LoginController类,进行测试
[code]@RestController public class LoginController { @GetMapping("/doLogin") public String login(){ return "登录成功"; } @GetMapping("/hello") public String hello(){ return "hello"; } }
5.测试结果
访问doLogin路径将不会被拦截,访问其它请求会被拦截。
相关文章推荐
- SpringBoot使用拦截器
- spring boot的拦截器简单使用
- spring boot的拦截器简单使用
- Spring boot 静态资源处理以及拦截器的使用
- springboot 配置使用拦截器 interceptor
- spring boot 使用spring AOP实现拦截器
- Spring Boot 使用拦截器
- SpringBoot(五):SpringBoot使用拦截器
- SpringBoot学习笔记之拦截器使用
- SpringBoot使用自定义注解+拦截器 实现日志记录
- 在springboot项目中使用拦截器
- 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
- springBoot使用拦截器实现权限验证,解决注入为空
- SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
- SpringBoot使用拦截器、过滤器、监听器
- springboot中拦截器的使用
- SpringBoot系列(十一)拦截器与拦截器链的配置与使用详解,你知道多少?
- spring boot 使用spring AOP实现拦截器
- 在SpringBoot中使用 拦截器
- 使用springBoot的拦截器功能介绍