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

加强政府网站建设的总结国际时事新闻

加强政府网站建设的总结,国际时事新闻,沧州网页设计百胜,手机如做网站为什么要自定义参数解析器呢? 因为很多项目每次获取用户信息,需要重复从请求头中获取token,用token再去redis或是sql中去拿到存储的计本对象,再将获取到的Json数据,转化为我们需要的对象等代码,作为一名程…

为什么要自定义参数解析器呢?

因为很多项目每次获取用户信息,需要重复从请求头中获取token,用token再去redis或是sql中去拿到存储的计本对象,再将获取到的Json数据,转化为我们需要的对象等代码,作为一名程序员面对如此重复的代码实在是不能容忍

当然很多人会说那我将这些步骤封装成一个方法,想要获取的时候调一下不就好了吗。当然这是一个解决办法,但是你依旧需要去在代码中去写对应的方法。
于是我就在想是否可以在接受请求参数的时候就将这些步骤全部执行完毕,Controller接受的时候就已经是一个用户信息的实体类了。
之后我就开始找方法,还真就被我找到了HandlerMethodArgumentResolver.class,中文称为方法参数解析器,是Spring Web(SpringMVC)组件中的众多解析器之一,主要用来对Controller中方法的参数进行处理。
自定义一个方法参数解析器主要去实现HandlerMethodArgumentResolver.class中的两个方法:supportsParameter方法、resolveArgument方法

  • supportsParameter 方法

    • 当该方法返回false时,跳过;
    • 当该方法返回true时,进入resolveArgument方法;
  • resolveArgument 方法

    • 用于编写request解析逻辑

具体代码

@Component
public class UserInfoArgumentResolver implements HandlerMethodArgumentResolver {@Autowiredprivate RedisService redisService;@Overridepublic boolean supportsParameter(MethodParameter parameter) {// 判断方法参数是否与指定类型对象一致,是则返回true,否则返回false//如果Controller的接收参数为User类型 返回truereturn parameter.getParameterType() == User.class;}@Overridepublic Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {HttpServletRequest request = (HttpServletRequest)webRequest.getNativeRequest();String token = request.getHeader("token");//通过token去redis中获取数据String userStr = redisService.getCacheObject(token);UserInfo userInfo = JSON.parseObject(userStr, UserInfo.class);User user = JSONUtil.toBean(request.getParameter("user"), User.class);return user;}}

将自定义解析器添加到解析器列表中

@Configuration
public class WebConfiguration implements WebMvcConfigurer {@Autowiredprivate UserInfoArgumentResolver userInfoArgumentResolver;@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {resolvers.add(userInfoArgumentResolver);}
}

Controller

    @RequestMapping("/test")public User test(User user){return user;}

不过这个方法有个问题就是多个参数就会报参数类型的错误,我还没找到方法,也希望大家可以试一试

http://www.shuangfujiaoyu.com/news/35026.html

相关文章:

  • 企业网站建设知识百度竞价ocpc
  • 厦门做外贸网站推广业务
  • 网站推广设计产品推广平台排行榜
  • 网站开发主管岗位职责说明书培训班管理系统 免费
  • 网站下雪代码软件定制
  • 化妆品网站 源码百度网站链接提交入口
  • 搭建发卡网站要多少钱电子商务网站建设与管理
  • 抖音代运营是怎么操作的海淀区seo搜索引擎
  • 做网站从哪里做seo代理计费系统
  • 做家具的外国网站百度搜索风云榜小说
  • 代办公司执照兰州seo关键词优化
  • diy小程序开发平台百度首页优化
  • b2c商城网站建设宁海关键词优化怎么优化
  • laravel如何做网站教育机构在线咨询
  • 哪个网站可以做卖房全网网站推广
  • 政务网站建设实施方案百度竞价排名系统
  • 一个ip做几个网站上海排名优化seobwyseo
  • 公司做网站的费用记什么科目站长统计 站长统计
  • 网站建设和维护工作总结软文平台有哪些
  • 什么是网站交互性长沙网站推广和优化
  • dreamweaver个人网站模板下载百度提交入口的注意事项
  • 福州网站怎么做客服系统网页源码2022免费
  • 网站建设意向表网络热词2023
  • 网站制作发票企业网站建设原则是
  • 衡水网站建设服务商青岛自动seo
  • 手机怎么注册自己的网站如何做好市场推广
  • 学院网站建设 需求分析搜盘 资源网
  • 四川营销型网站建设百度推广一般多少钱
  • 网站建设尺寸全国广告投放平台
  • 在哪个网站上面可以接项目做世界杯积分榜排名