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

做淘宝客要建网站吗上海建站市场

做淘宝客要建网站吗,上海建站市场,房屋设计软件app哪个好,注册页面写在前面 在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。 如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用! 以…

写在前面

在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。

如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用!

以往的项目经验里,都是使用用户对应的Service获取,今天使用自定义注解对其进行数据绑定,从而获取登录用户信息。

步骤一:编写自定义注解

先自定义一个用于绑定登录用户信息的注解,且运行时有效。

代码如下:

/*** 当前登录用户信息注解*/
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CurrentUser{}

步骤二:自定义UserResolver

Spring boot封装了SpringMVC中的HandlerMethodArgumentResolver接口,自定义UserResolver要实现对应的2个接口。

代码如下:

/*** 当前登录用户Resolver*/
public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {@Autowiredprivate UserService userService;@Overridepublic boolean supportsParameter(MethodParameter methodParameter) {//判断方法参数是否带有@CurrentUser注解且参数类型为User或其子类return methodParameter.hasParameterAnnotation(CurrentUser.class) && User.class.isAssignableFrom(methodParameter.getParameterType());}@Overridepublic Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {//获取当前登录用户return userService.getCurrent();}}

步骤三:WebMvcConfig配置自定义解析器

新建一个webconfig 实现 WebMvcConfigurer 接口, 需要重写 addArgumentResolvers 这个方法,初始化我们创建的操作类。

代码如下:

/*** 配置自定义解析器*/
@Configuration
public class MvcConfig implements WebMvcConfigurer{@Beanpublic CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver() {return new CurrentUserMethodArgumentResolver();}@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {argumentResolvers.add(currentUserMethodArgumentResolver());}
}

步骤四:编写代码测试

@RequestMapping(value = "/getUser", method = RequestMethod.GET)
public Map<String, Object> queryUser( @CurrentUser UserInfoVO userInfo) {System.out.println(userInfo);
}

小结

之所以能够自定义注解获取当前登录用户信息,就是借助于HandlerMethodArgumentResolver来扩展自己的参数解析器。

在resolveArgument接口中编写对应获取登录用户信息的逻辑代码。举个栗子,有的系统是从数据库中获取数据,有的则把对应数据放在redis中。所以在这里从不同地方获取即可。


The end.

http://www.yayakq.cn/news/625944/

相关文章:

  • 长春市做网站推广如何做好网站开发项目需求分析
  • 企业网站规划与设计游戏网站建设内容
  • 宁波网站建设联系电话查询营销营网站建设
  • 有口碑的常州网站优化成都网站建设众成联邦
  • 报表网站建设企业网站需要哪些功能
  • 金华市建设监理协会网站wordpress分类目录混乱
  • 住房和城乡建设部科技发展促进中心网站网站 linux 服务器
  • icp网站域名怎么填写优化师和运营区别
  • 10G网站空间wordpress编辑页面没用
  • 创造与魔法官方网站一起做喜欢的事淮南查查论坛
  • 南翔镇网站建设公司企业排名优化公司
  • 哈尔滨模板建站平台php免费企业网站模板
  • 免费搭建永久网站商务网站建设的应用
  • python网站开发用什么软件网站建设需多少钱
  • 掌握商务网站建设内容重庆高铁建设网站
  • 精通网站建设工资多少做cpa必须要有网站吗
  • 南京地区网站开发大专网页设计工资怎么样
  • 处网站的建设速卖通下载app
  • 建站资源域名搜索引擎
  • 营销网站建设费用wordpress反应很慢
  • 清远网站建设深圳龙岗建站公司
  • 外贸品牌网站设计公司怎么设计页面只显示一页
  • 网站建设及维护合同安康市住房和城乡建设局网站
  • 贸易公司网站建设要多少钱湖南城市建设技术学院官方网站
  • 网站建设 维护 运营情况报告什么叫子网站
  • 浙江省建设工程质量管理协会网站杭州建设厅特种作业证
  • 1.电子商务网站建设的核心是( )泸县手机网站建设
  • 成都高端定制网站新手怎么做网络销售
  • 个人网站建设的过程网站设置超链接代码
  • 简单网站开发网络营销推广的三板斧