zoukankan      html  css  js  c++  java
  • 通过自定义 @CurrentUser 获取当前登录用户

    @CurrentUser

    要用这个注释,总共分为三步

      1:第一

    @Target(ElementType.PARAMETER)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface CurrentUser {
    }

      2:第二:增加参数解析器

      

    public class CurrentUserMethodArgumentResolver  implements HandlerMethodArgumentResolver {

    @Override
    public boolean supportsParameter(MethodParameter parameter) {
    return parameter.getParameterType().isAssignableFrom(UserInfo.class)
    && parameter.hasParameterAnnotation(CurrentUser.class);
    }
    @Override
    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
    UserInfo userInfo = (UserInfo) webRequest.getAttribute("currentUser", RequestAttributes.SCOPE_REQUEST);
    if (userInfo != null) {
    return userInfo;
    }
    throw new MissingServletRequestPartException("currentUser");
    }
    }

      3:第三:配置参数解析器

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(currentUserMethodArgumentResolver());
    super.addArgumentResolvers(argumentResolvers);
    }
    @Bean
    public CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver() {
    return new CurrentUserMethodArgumentResolver();
    }
    以上配置可以copy。。。
    如有错误,请邮件zs253499660@sina.com,如有更好的方法,可以推荐
  • 相关阅读:
    JAVA 优先获取外网Ip,再获取内网Ip
    session 关于localhost和本地IP地址 不共享问题
    读取properties的简单方法,使用@Configuration
    数组和工具类练习
    for循环练习题
    eclipse 的输入输出练习
    用eclispe练习常、变量数据类型之间的转换
    第一个java小程序
    Java基础理论(1)
    字符集
  • 原文地址:https://www.cnblogs.com/senjiang/p/9784660.html
Copyright © 2011-2022 走看看