SpringBoot学习笔记:自定义拦截器
2024-08-23 04:02:53
SpringBoot学习笔记:自定义拦截器
快速开始
拦截器类似于过滤器,但是拦截器提供更精细的的控制能力,它可以在一个请求过程中的两个节点进行拦截:
- 在请求发送到Controller之前
- 在响应发送到Client之前
例如,你可以使用拦截器在将请求发送到控制器之前添加请求头,并在将响应发送到客户端之前添加响应标头。
创建拦截器
创建一个拦截器,需要实现HandlerInterceptor接口,他有三个方法来完成拦截
preHandle(): 用于在将请求发送到控制器之前执行操作。此方法应返回true以将响应返回给客户端。
postHandle() :用于在将响应结果发送到客户端之前执行操作。
afterCompletion() :用于在请求响应全部结束后执行之后的操作。
一个自定义的拦截器代码如下:
@Component
public class ProductServiceInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(
HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true;
}
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {} @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception exception) throws Exception {}
}
注册拦截器
拦截器完成后,必须使用WebMvcConfigurerAdapter向InterceptorRegistry注册此Interceptor,如下所示
@Component
public class ProductServiceInterceptorAppConfig extends WebMvcConfigurerAdapter {
@Autowired
ProductServiceInterceptor productServiceInterceptor; @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(productServiceInterceptor);
}
}
最新文章
- .NET Core 2016 回顾
- siteserver cms选择栏目搜索无效
- Architectural Model - SNMP Tutorial
- 4412开发板Android教程——Android平台简介
- AutoCAD.NET二次开发:创建自定义菜单(AcCui)
- System Operations on AWS - Lab 1W - Creating EC2 (Windows)
- OAuth2.0 错误码
- IOS开发笔记 - 基于wsdl2objc调用webservice
- Android实现多条Toast快速显示(强制中止上一条Toast的显示)
- java5后的并发池
- nginx.conf 中php-ftp配置
- 使用 RAII 完成线程等待
- hibernate08--OpenSessionInView
- Django中模型层中ORM的多表操作
- Eclipse添加Junit测试
- OpenGL透明与混色效果
- 概率法计算PI
- POJ3009:Curling 2.0(dfs)
- CommonJS初识
- shell基础篇(四)算术运算
热门文章
- learning java Date类
- 像素迷踪,当Unity的Frame Debugger力不从心时
- 备用shell管理方案之butterfly+nginx+https
- java学习笔记(2)注释、public lcass、class、标识符、字面值、变量
- P1378 油滴扩展——搜索小记
- 怎么判断是qq浏览器还是uc浏览器?
- java代码拼写sql
- 转 python多个命令同时执行.sh
- openstack kvm cannot set up guest memory 'pc.ram': Cannot allocate memory
- gogs 实现webhook钩子(php接口形式)