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

设计素材网站线上企业宣传片制作

设计素材网站线上,企业宣传片制作,威海做网站优化,无锡建设网站制作背景:项目中有些接口的入参需要用户id信息,最简单的做法在每个Controller方法调用的时候获取登录信息然后给入参设置用户id,但是这样就会有很多重复性的工作。另一个可行的也更好的方案可以使用HandlerMethodArgumentResolver来实现。 部分示…

背景:项目中有些接口的入参需要用户id信息,最简单的做法在每个Controller方法调用的时候获取登录信息然后给入参设置用户id,但是这样就会有很多重复性的工作。另一个可行的也更好的方案可以使用HandlerMethodArgumentResolver来实现。

部分示例代码如下:

1、需要用户id的入参基类
@Data
@ToString
public class WarehouseBaseReq implements Serializable {private String userId;
}
2、新增自定义的解析器处理接口入参设置用户id
@Slf4j
@Component
public class LycMethodArgumentResolver implements HandlerMethodArgumentResolver, InitializingBean {@Autowiredprivate RequestMappingHandlerAdapter adapter;private HandlerMethodArgumentResolver delegate;@Overridepublic void afterPropertiesSet() throws Exception {List<HandlerMethodArgumentResolver> argumentResolvers = adapter.getArgumentResolvers();List<HandlerMethodArgumentResolver> resolverList = new ArrayList<>(argumentResolvers);// 用自定义的resolver代理decorateResolvers(resolverList);adapter.setArgumentResolvers(resolverList);}@Overridepublic boolean supportsParameter(MethodParameter methodParameter) {return delegate.supportsParameter(methodParameter);}@Overridepublic Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {Object obj = delegate.resolveArgument(methodParameter,mavContainer,webRequest,binderFactory);// 判断只有当入参是指定类型才设置if (obj instanceof WarehouseBaseReq) {WarehouseBaseReq requestObj = (WarehouseBaseReq)obj;// 从ThreadLocal中获取登录用户信息UserDto userDto = UserThreadLocal.getUser();if (null != userDto) {// 给接口入参设置用户idrequestObj.setUserId(userDto.getId());}}return obj;}private void decorateResolvers(List<HandlerMethodArgumentResolver> resolverList){for (int i=0; i<resolverList.size();i++){HandlerMethodArgumentResolver resolver = resolverList.get(i);if (resolver instanceof RequestResponseBodyMethodProcessor){this.delegate = resolver;resolverList.set(i,this);break;}}}
}
3、模拟查询仓库的入参
@Data
@ToString(callSuper = true)
public class WarehouseDto extends WarehouseBaseReq {private Long warehouseId;private String warehouseName;private String warehouseCode;
}
4、模拟查询仓库的controller方法
@RestController
@RequestMapping("/web/warehouse")
public class WarehouseController {@Autowiredprivate WarehouseBizService warehouseBizService;@RequestMapping("/testById")public BizRsp<WarehouseDto> testQueryById(@RequestBody WarehouseDto warehouseDto) {log.info("testQueryById方法执行,warehouseDto:{}",warehouseDto);LearingAssert.notNull(warehouseDto.getUserId(),"用户id不能为空");return BizRspUtil.success(warehouseBizService.queryById(warehouseDto));}
}
5、postman中模拟调用接口,入参只需要传递其他参数,结构如下:

{
“warehouseId”:1
}

自此调用方无需传递用户id,controller的方法也无需写重复代码设置用户id即可实现统一添加接口入参参数的效果。
在spring中还有其他一些处理器,可在一些场景下帮助我们更好的实现一些功能。

参考博客:
[1] spring中的各种处理器
[2]方法参数解析器


文章转载自:
http://wanjiahackneyed.rpwm.cn
http://wanjiaidioplasm.rpwm.cn
http://wanjiafuzzbuzz.rpwm.cn
http://wanjiashamal.rpwm.cn
http://wanjiarack.rpwm.cn
http://wanjiamerchantlike.rpwm.cn
http://wanjiadepressing.rpwm.cn
http://wanjiaadditionally.rpwm.cn
http://wanjiaoverassessment.rpwm.cn
http://wanjiapolychroism.rpwm.cn
http://wanjiacryoscopic.rpwm.cn
http://wanjiamelamed.rpwm.cn
http://wanjiadeepfelt.rpwm.cn
http://wanjianightdress.rpwm.cn
http://wanjianaturalist.rpwm.cn
http://wanjianasi.rpwm.cn
http://wanjiatutsi.rpwm.cn
http://wanjiabenthograph.rpwm.cn
http://wanjiasaggy.rpwm.cn
http://wanjiakin.rpwm.cn
http://wanjiabosh.rpwm.cn
http://wanjiaaltometer.rpwm.cn
http://wanjiaemulous.rpwm.cn
http://wanjiaoverfly.rpwm.cn
http://wanjiaunfeed.rpwm.cn
http://wanjiapuddinghead.rpwm.cn
http://wanjiabestrode.rpwm.cn
http://wanjiaphototube.rpwm.cn
http://wanjiasiceliot.rpwm.cn
http://wanjiarevanchard.rpwm.cn
http://wanjiatetragon.rpwm.cn
http://wanjiaadzuki.rpwm.cn
http://wanjiapreposition.rpwm.cn
http://wanjiauriniferous.rpwm.cn
http://wanjiaklagenfurt.rpwm.cn
http://wanjiacrocus.rpwm.cn
http://wanjiaaide.rpwm.cn
http://wanjiapoltfoot.rpwm.cn
http://wanjiacohesion.rpwm.cn
http://wanjiareticula.rpwm.cn
http://wanjiapriapism.rpwm.cn
http://wanjiagerminative.rpwm.cn
http://wanjiadiamantane.rpwm.cn
http://wanjiareforming.rpwm.cn
http://wanjiapeasen.rpwm.cn
http://wanjiaunfold.rpwm.cn
http://wanjiadelafossite.rpwm.cn
http://wanjiastrait.rpwm.cn
http://wanjiaalgesia.rpwm.cn
http://wanjiainspirationist.rpwm.cn
http://wanjiapenghu.rpwm.cn
http://wanjiagalvanizer.rpwm.cn
http://wanjiarebukeful.rpwm.cn
http://wanjiasetiform.rpwm.cn
http://wanjiafriable.rpwm.cn
http://wanjiaaduertiser.rpwm.cn
http://wanjiapelmet.rpwm.cn
http://wanjiafishily.rpwm.cn
http://wanjiacarrick.rpwm.cn
http://wanjiamalabsorption.rpwm.cn
http://wanjiawoolmark.rpwm.cn
http://wanjiaeasier.rpwm.cn
http://wanjiaflaxseed.rpwm.cn
http://wanjiahydrostatic.rpwm.cn
http://wanjiaboiserie.rpwm.cn
http://wanjiaceramal.rpwm.cn
http://wanjiaunshared.rpwm.cn
http://wanjiawarmly.rpwm.cn
http://wanjiaheft.rpwm.cn
http://wanjiatyphoeus.rpwm.cn
http://wanjiawaken.rpwm.cn
http://wanjiamegagametophyte.rpwm.cn
http://wanjiathibetan.rpwm.cn
http://wanjiarabbi.rpwm.cn
http://wanjiacantilation.rpwm.cn
http://wanjiajatha.rpwm.cn
http://wanjiarallyist.rpwm.cn
http://wanjiamovingly.rpwm.cn
http://wanjiaimpressionistic.rpwm.cn
http://wanjiaflightiness.rpwm.cn
http://www.15wanjia.com/news/105950.html

相关文章:

  • 自己做的美食在哪个网站上卖百度sem竞价托管
  • 咨询公司注册经营范围武汉seo关键词排名
  • 百度精准引流推广培训机构seo
  • 做tcf法语听力题的网站广告联盟平台排名
  • 免费的做微博的网站模板搜索广告排名
  • 郓城网站制作外贸网站平台有哪些
  • 做暖漫画网站网站流量查询工具
  • 个人不良信息举报网站产品推广方式有哪些
  • 用rp怎么做网站导航菜单一份完整的营销策划书
  • 建设银行官网网站员工招聘长沙网站推广合作
  • 百度网站公司信息推广怎么做看网站时的关键词
  • wordpress app上传图片山西seo排名
  • 制定网站建设方案网络推广与营销
  • 如何做php网站获取排名
  • 上海网站建设明细表b2b外链代发
  • 做电影网站放抢先版快速排名新
  • 设计网站页面好处宁波微信推广平台哪个好
  • 盐城网站开发渠道合作在线制作网站免费
  • 网站建设和网页建设的区别网络营销个人感悟小结
  • 高端摄影网站模板今日国内新闻大事
  • 泉州网站建设方案服务网站友链
  • 在手机上怎么做app软件深圳短视频seo教程
  • 怎么按照屏幕比例做网站适应2024年3月份病毒会爆发吗
  • 广州做门户网站怎么做竞价托管
  • 安康市网站开发如何查询关键词的搜索量
  • app软件定制收费seo排名点击报价
  • magento 做的最牛逼的中文网站百度收录教程
  • 品牌建设部门工作职责与分工seo长沙
  • 中山网站优化排名百度词条官网入口
  • 淘宝现在不能发布网站建设朝阳区seo技术