SpringMVC中,首先是Interceptor,另外就是实现WebRequestInterceptor
可以在请求Controller之前和执行之后进行拦截处理
但是还没有发现如何获取调用方法的返回值
所以,就打算自己通过AOP来写返回值的捕捉并进行相应的处理
应用场景是,我希望通过MVC返回的结果是统一的格式和规则,并且有一些预设字段
使用AOP时,会分别有CGLIB和Java自带的动态代理,但是对于Controller的捕捉,我看网上说无法使用自带的动态代理,所以,此处使用CGLIB
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
pom里面所加
我是使用了注解形式,需要在Spring配置文件中添加
<aop:aspectj-autoproxy />
在自定义的Aspect类上添加注解@Aspect以及SpringIOC的@Component
首先注册切入点
@Pointcut("execution(* com.liyunpeng.www.gateway.controller.*.*(..))")
public void resultMapAspect(){}
再根据切入点,配置相应的执行方法
@AfterReturning(value = "resultMapAspect()",returning="resultMap")
public void abc(JoinPoint joinpoint,Object resultMap) throws Throwable {
此处的resultMap就是通过Controller之后的返回值了,我们可以进行处理相关的内容
另外,也可以通过aop:config标签来配置aop
除了afterReturning意外,还有before around after,分别是执行前、执行前+后、执行后
只不过afterReturning可以获取对应的返回值和参数。
分享到:
相关推荐
主要介绍了详解利用SpringMVC拦截器控制Controller返回值,通过定义一个StringResult注解,在访问方法的时候返回StringResult中的内容,有兴趣的可以了解一下。
Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理, springMVC里做添加AOP拦截,用于捕获异常。
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
springmvc上传文件controller,vue
极客学院java中级课程,SpringMVC系列教材——SpringMVC 中的拦截器与异常处理
SpringMVC4.0 一个Controller多个方法
主要介绍了springmvc之json数据交互controller方法返回值为简单类型,非常具有实用价值,需要的朋友可以参考下
本篇文章主要介绍了防止SpringMVC拦截器拦截js等静态资源文件的解决方法,具有一定的参考价值,有兴趣的同学可以了解一下
springmvc非注解controller控制器
本篇文章主要介绍了SpringMVC Controller 返回值的可选类型详解 ,spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void,有兴趣的可以了解一下
springmvc 上传文件代码 最基础的
springmvc controller
SpringMVC URL 与 Controller 方法初始化源码流程 Visio 文档 文档可以直接通过Visio进行编辑,方便二次修改、学习
主要介绍了SpringMVC 方法四种类型返回值总结(你用过几种),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了springMVC如何将controller中数据传递到jsp页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
springmvc controller
springmvc controller
15、SpringMvc 中函数的返回值是什么? 16、SpringMVC 怎么样设定重定向和转发的? 17、SpringMvc 用什么对象从后台向前台传递数据的? 18、SpringMvc 中有个类把视图和数据都合并的一起的,叫什么? 19、怎么样把 ...
SpringMVC框架下对限定时间拦截(适用于初学者)
springboot学习、springmvc、mybatis、注解、拦截器