前言:
其实这篇文章也不算完全的原创,因为是看了https://my.oschina.net/diamondfsd/blog/836727实践后做的总结,并且文章后面附上源码下载链接。
我们要做什么?
我们要在springmvc的控制层,在返回字符串的时候,动态改变一下到底要返回哪些字符串,比如我们要返回实体Article,他里面有4个属性我们只想返回其中的3个如图
如何实现?很简单加一个注解,如图,传入实体类型和拦截的属性名
当然这个注解不是springMVC自带的,是我们自定义的,下面就告诉大家如何实现。
1 首先我们要配置一个拦截器,拦截控制层的请求如图
2 实现HandlerMethodReturnValueHandler接口,其实就实现两个方法,一个是拦截后判定是否有对应的注解,也就是@JSON注解,如果有,就执行第二个方法,解析注解中的数据进行一些操作如图
3 我们定义一个类专门进行注解的解析,设置过滤器,和返回json 被jsonReturnHandler调用
4 过滤器
调用关系
源码(只包含工具类):https://pan.baidu.com/s/1jHCnySI
整个程序:https://pan.baidu.com/s/1dFgPNe5
总结:其实挺简单的,就是通过自定义注解,和拦截器实现注解的识别读取,通过jackson实现转换json,通过拦截器,拦截不需要的属性
————————————————chenchen