使用切片拦截REST服务(五)
来源:互联网 发布:c语言求质数和 编辑:程序博客网 时间:2024/05/20 23:58
上一节所述的拦截器虽然可以拿到 请求 响应 以及它真正处理的方法 对象,但是它也有一些问题,它的问题就是它没法拿到拦截方法的值,拿到的只是方法的声明Handler
如果我们除了想要记录请求的类以及方法之外 还有这个方法的参数是什么,我们就要用到第三个拦截 就是切片
切片(Aspect)就是Spring 核心功能的AOP 切入点( 注解 ) 1.在哪些方法上起作用2.在什么时候起作用也就是增强(方法)起作用时执行的业务逻辑
@Aspect@Compentpublic class TimeAspect{@before 相当于 拦截器的preHandler@after 在方法成功返回以后被调用@afterThrowing在方法抛出某些异常的时候调用@Around 包含了前面三种}
Around表达式 在spring的官方网站上进入PROJECTS 进入SPRING FRAMEWORK
看它的Reference( 文档 ) 11章 Aspect Oriented Programming with Spring
/** * Created by ZhuPengWei on 2017/11/23. */@Aspect@Componentpublic class TimeAspect { @Around("execution(* open.security.web.controller.UserController.*(..))") public Object HandlerControllerMethod(ProceedingJoinPoint pjo) throws Throwable { System.out.println("time aspect start !!"); Object[] args = pjo.getArgs(); for (Object arg : args) { System.out.println(arg); } long time = new Date().getTime(); Object proceed = pjo.proceed(); System.out.println("耗时 :" + (new Date().getTime() - time)); System.out.println("time aspect finish"); return proceed; }}
过滤器:可以拿到原始的Http请求的响应信息,但是拿不到处理方法的信息
拦截器:既能拿到http 请求和响应,也能拿到Http请求的方法信息,但是拿不到参数的值
切片:可以拿到参数的值,但是拿不到Http请求和响应对象的
起作用顺序 (处理机制)
Filter>Interceptor>ControlllerAdvice>Aspect>Controller
阅读全文
0 0
- 使用切片拦截REST服务(五)
- 使用Filter和Interceptor拦截REST服务(四)
- 使用REST API 地图服务无法访问非本地的缓存切片
- SOAPUI测试REST项目(五)——REST服务和WADL
- OkHttp基本使用(五)拦截器
- 使用AcrMap发布切片地图服务
- 使用 soapUI 测试 REST 服务
- 使用 soapUI 测试 REST 服务
- 使用 CXF 开发 REST 服务
- 使用cxf开发REST服务
- 20160819关于使用REST服务
- 使用 soapUI 测试 REST 服务
- 使用 CXF 开发 REST 服务
- 使用SpringBoot开发REST服务
- 使用 CXF 开发 REST 服务
- 使用多线程提高rest服务性能,异步处理rest服务
- 使用 soapUI 测试 REST 服务(并发测试)
- Python学习(五)——切片
- 性能测试项目实施流程
- mysql 命令笔记
- 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)
- Space Elevator
- SSM整合的配置
- 使用切片拦截REST服务(五)
- 回溯法之子集树
- 程序员三年的门槛该如何跨过去?
- SQL跨库查询
- Spring @Transactional(rollbackFor = Exception.class) 的作用
- DOM和BOM-day21-个人学习笔记
- coding总结
- HTTP协议—— 简单认识TCP/IP协议
- POJ 1028 Web Navigation(stack+字符串处理)