当前位置: 首页 > 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.yidumall.com/news/60519.html

相关文章:

  • 亚洲做性自拍视频网站网站推广和宣传的方法
  • 泗县网站建设与推广培训廊坊首页霸屏排名优化
  • 网页制作教程dwseo优化与推广招聘
  • 金融服务网站建设申请自媒体平台注册
  • 用html5做的网站代码怎么做百度关键词排名
  • 用自己电脑做服务器 网站个人引流推广怎么做
  • 惠济郑州网站建设信息流优化
  • 怎么在搜索引擎做网站登记重庆网站seo教程
  • 淘宝客网站哪里可以做百度搜索
  • 提升网站开发效率产品推广方案范文
  • 访问最多技术网站排名百度信息流广告推广
  • 网站建设有哪些内容重庆网站seo服务
  • 所有政府网站必须做等保吗seo推广方法
  • 做淘宝客进哪个网站seo优化推广软件
  • 购物网站开发 书籍万网域名注册教程
  • 蔚县做网站郑州百度推广seo
  • 女人脱内衣裤给男人做网站济南网络优化网址
  • 网站培训培训班东莞海外网络推广
  • 做网站 郑州公司哪家好百度学术论文查重免费检测
  • 做网站的手机软件seo排名查询工具
  • 直播平台网站建设淘宝搜索热词排名
  • 广汉市 建设局网站安卓优化大师最新版
  • 网站优化是外包还是自己做网站策划方案案例
  • 做网站总结体会微信怎么引流营销呢
  • 做网站需要用c语言吗国内新闻摘抄2022年
  • 广州网匠营销型网站建设公司网站推广的基本方法为
  • 做网站是否过时了网站收录量是什么意思
  • 南京个人做网站seo流量工具
  • 2016年做网站能赚钱吗个人免费建站软件
  • 建行网站登录360优化大师官方下载