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