利用spring aop拦截并获取@ResponseBody数据
来源:互联网 发布:淘宝网咖啡杯 编辑:程序博客网 时间:2024/06/14 12:17
拦截请求有很多种方法,最简单的用拦截器,但是拦截器并不能获取返回的数据(比如@ResponseBody),上网找了一段时间,可以利用spring的AOP特性拦截并获取,还能修改返回的数据。
- 准备
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.9</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version></dependency>
- 拦截代码
package com.jujin.riskmanager.interceptor;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;import com.fasterxml.jackson.databind.ObjectMapper;import com.jujin.common.JsonList;public class ResultInterceptor implements MethodInterceptor { private final static ObjectMapper jsonMapper = new ObjectMapper(); @Override public Object invoke(MethodInvocation invocation) throws Throwable { Object result = invocation.proceed(); // 随意处理结果吧 System.out.println("After: result: "+ jsonMapper.writeValueAsString(result)); return result; }}
- spring配置
<!-- AOP --><bean id="controllerMethodInterceptor" class="com.jujin.riskmanager.interceptor.ResultInterceptor"/> <aop:config proxy-target-class="true"> <aop:pointcut id="controllerMethodPointcut" expression="execution(* com.jujin.riskmanager.controller..*(..)) and @annotation(org.springframework.web.bind.annotation.RequestMapping)"/> <aop:advisor advice-ref="controllerMethodInterceptor" pointcut-ref="controllerMethodPointcut" /> </aop:config>
阅读全文
0 0
- 利用spring aop拦截并获取@ResponseBody数据
- 自定义Spring的Aop切面类拦截业务请求,并获取到请求的参数名和参数值
- Struts2+Spring+AOP 权限拦截+反射获取Action权限注解
- spring aop 获取拦截类中的属性的值
- Spring AOP(拦截)
- Spring AOP 拦截
- Spring AOP 拦截
- Spring aop拦截器
- spring aop拦截action
- spring aop 拦截例子
- 通过Spring AOP 拦截 SQL
- spring前置AOP拦截action
- spring AOP的异常拦截
- Spring AOP 异常拦截器
- spring 简单配置aop 拦截
- spring AOP的异常拦截
- Spring Aop 日志拦截器
- spring AOP的异常拦截
- linux上你不知道的shell(bash)命令
- 【置顶】最大连续子数组
- MySQL PXC GTID
- vultr的VPS安装BBR
- HashMap实现原理
- 利用spring aop拦截并获取@ResponseBody数据
- python 调用super()初始化报错“TypeError: super() takes at least 1 argument”
- Java中CAS详解
- Windows程序设计-输出文字
- VC6.0新建工程——Win32 Application和Win32 Console Application
- 在java项目中打印sql语句日志
- SQL 与MYSQL与SQL SERVER与ORACLE的关系
- MAC 10.12系统环境下无法打开360加固助手的解决
- TouchEvent