背景是这样的:目前有个业务上的需求,想要对传入的基参中的某个参数赋值增强(而且确定是要后端来做)我想到的大致思路是通过aop来做。现在公司也有一个CloneRequestWrapper工具类能够实现流的复制,能够从中取出json字符串,自己进行如校验token这样的业务处理。但是想要写入改怎么操作呢?在网上搜了很多博客文章,基本上都是说的get方法,post的能做么?
2 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
重写HttpServletRequestWritableWrapper和Filter在重写的Filter中写好自己的逻辑最终将重写的Filter放在过滤链中
慕斯709654
TA贡献1840条经验 获得超5个赞
1、基于Filter,既然要修改,肯定涉及到数据读取,但是HttpServletRequest的流只能读一次,所以主要是自己实现一个HttpServletRequest,把读到的流缓缓存起来,后续的服务再读流的时候,其实读取的是自己缓存的流数据就可以。但是这种方式设计到文件上传就不是很好处理了2、既然你做的是一些通用的业务处理,那么你类似Controller上的入参,可以继承使用一个公共的基类,把公共属性放到基类里面,再对Controller做一个AOP就可以。3、也可以使用Spring的自定义参数解析HandlerMethodArgumentResolver,你把Http的数据读出来,在这里自己的各种校验处理,合法后,把要映射的参数类型取出来,做一次映射就可以。
添加回答
举报
0/150
提交
取消