当前位置: 首页 > news >正文

免费的logo设计网站已备案网站域名

免费的logo设计网站,已备案网站域名,做自己的网站有什么用,建设香帅摩托车官网我们编写RestController时#xff0c;有可能多个接口使用了相同的RequestBody#xff0c;在一些场景下需求修改传入的RequestBody的值#xff0c;如果是每个controller中都去修改#xff0c;代码会比较繁琐#xff0c;最好的方式是在一个地方统一修改#xff0c;比如将he…我们编写RestController时有可能多个接口使用了相同的RequestBody在一些场景下需求修改传入的RequestBody的值如果是每个controller中都去修改代码会比较繁琐最好的方式是在一个地方统一修改比如将header中的某个值赋值给RequestBody对象的某个属性。 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-modify-request-body 一、概述 在spring中可以使用RequestBodyAdviceAdapter修改RestController的请求参数。 二、自定义 RequestBodyAdviceAdapter 以下代码为自定义 ModifyBodyAdvice 实现 RequestBodyAdviceAdapter ControllerAdvice public class ModifyBodyAdvice extends RequestBodyAdviceAdapter {AutowiredHttpServletRequest httpServletRequest;OverrideNonNullpublic Object afterBodyRead(NonNull Object body, NonNull HttpInputMessage inputMessage,NonNull MethodParameter parameter, NonNull Type targetType,NonNull Class? extends HttpMessageConverter? converterType) {String requestMethod httpServletRequest.getMethod();String fieldName foo;if (StringUtils.startsWithIgnoreCase(requestMethod, HttpMethod.PUT.name())|| StringUtils.startsWithIgnoreCase(requestMethod, HttpMethod.POST.name())) {Field field ReflectionUtils.findField(body.getClass(), fieldName);if (field ! null) {ReflectionUtils.makeAccessible(field);String paramValue Optional.ofNullable(httpServletRequest.getHeader(fieldName)).orElse();Method method ReflectionUtils.findMethod(body.getClass(), set StringUtils.capitalize(fieldName), field.getType());if (method ! null) {ReflectionUtils.invokeMethod(method, body, paramValue);}}}return super.afterBodyRead(body, inputMessage, parameter, targetType, converterType);}Overridepublic boolean supports(NonNull MethodParameter methodParameter,NonNull Type targetType,NonNull Class? extends HttpMessageConverter? converterType) {return true;} }便于演示处理过程我们在代码中写死了要修改的请求对象的属性为 foo 从请求header中获取foo这个header的值然后通过反射赋值到请求对象的foo属性。 三、验证统一修改逻辑 我们通过编写单元测试的方式验证RequestBody的值是否能够正常修改。 在DemoApplicationTest这个单元测试程序中进行接口调用并验证返回结果。 Testpublic void test() {ReqBody reqBody new ReqBody();ResponseEntityReqBody resp testRestTemplate.exchange(RequestEntity.post(/test).header(foo, test).body(reqBody), ReqBody.class);log.info(result : {}, resp);assertThat(resp.getBody().getFoo(), is(test));}我们调用controller时传入了的RequestBody为 ReqBody的一个对象这个对象没有对属性进行赋值在请求header中发送了foo这个header按照处理逻辑controller中接收到的ReqBody对象的foo的值应该是header的值。
http://www.hkea.cn/news/14395071/

相关文章:

  • 网站数据接口怎么做自己做家具网站
  • 儿童网站设计模板电子商务网站建设的方法和工具
  • 站长统计ios网站运营小白可以做吗
  • 潍坊网站建设报价费用广东十大网站建设
  • 快速开发手机网站调用wordpress
  • net的网站建设网站上的图标用什么软件做的
  • 网站图片展示方式建设公司网站需要什么资料
  • 网站线下推广怎么做广东建设继续教育网站首页
  • 网站制作中的更多怎么做嘉定企业网站开发建设
  • 那些平台可以给网站做外链无锡百姓网推广
  • 自适应模板网站互联网创业有哪些项目可以做
  • 北京专业网站制作技术网站人多怎么优化
  • 梅州建站网络wordpress评论ajax加载
  • 自己做单词卡的网站是什么金坛做网站哪家好
  • 做的网站怎么把技术支持去掉线上教育平台推广怎么做
  • 支付集成文件放在网站哪里团购网站发展
  • 国外网站推广公司宜兴市做网站
  • 怎么通过做网站赚钱苏州做企业网站的公司
  • 淮安网站建设公司wordpress目录和页面
  • 局域网做网站 内网穿透华企网络
  • 教育学校网站源码 php网站项目计划书
  • 海淀石家庄网站建设网站编程赚钱
  • 佛山网站制作的公司动漫设计一般用什么软件
  • you物公馆网站建设开发一个安卓app
  • 微官网与手机网站首页做有弹幕视频网站
  • 中英网站模板唐山网站建设哪家专业
  • 汕头网站设计哪家好昆明医院网站建设
  • 广州高端网站建设定制四川手机响应式网站建设推荐
  • 现在网站开发和软件开发网站建设推进会讲话稿
  • discuz做商城网站论坛网站建设方案