zoukankan      html  css  js  c++  java
  • SpringBoot版不需要配置文件注解获取当前登录用户

    本文讯(2019年3月30日 飞快的蜗牛博客)   我是一个懒人,很久不写博客,想起来看到也不一定会写,只有心血来潮的时候写写,“钱塘江上潮信来,今日方知我是我”。。。。。。

    空杯对明月

    怅然不释怀

    生时亦何欢

    奋力酬勤去

    居不住飘然

    湖泊映傍晚

    只有对水面

    SpringBoot快速并崛起,一个字够简单,作为一个程序员,你是否时长觉得上班时间,讲话越来越少,坐着屁股疼,走出来歇歇又怕老板发现,不运动,真是Fuck的害身体,程序员其实挺可悲,没有程序员待遇好的更可悲;但不管怎么样房价这么贵,

    你还得还房贷。祝福吧,祝福那些可怜的我们,可怜儿奋斗泥人;

     1】第一步:先要自定义注解,辣么我们来写一个注解如下:

      /**
      * 放置在参数位置的注解
      * 自定义注解--获取当前登录用户
      */
      @Target({ElementType.PARAMETER})
      @Retention(RetentionPolicy.RUNTIME)
      @Documented
      public @interface LoginUser {


      }

      2】第二步:实现  接口 :HandlerMethodArgumentResolver  你懂的处理方法参数用的 ,注意以下类实现此接口,类上面是不要扫描注解什么的;

            

      public class LoginUserResolver  implements HandlerMethodArgumentResolver {

      @Override
      public boolean supportsParameter(MethodParameter parameter) {
      if(
    //如果该参数注解有@Logined
    parameter.getParameterAnnotation(LoginUser.class)!=null&&
    //如果该参数的类型为User
    parameter.getParameterType()==User.class
       ){
    //支持解析该参数
    return true;
      }
      return false;
      }

      @Override
       public Object resolveArgument(MethodParameter p, ModelAndViewContainer mavContainer,
    NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {

       return webRequest.getAttribute(p.getParameterName(), NativeWebRequest.SCOPE_SESSION);
      }

      }

     3】第三步:继承  父类:WebMvcConfigurationSupport  实现  此方法:addArgumentResolvers 代码如下:

                  

      import com.xxff.component.LoginUserResolver;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.web.method.support.HandlerMethodArgumentResolver;
      import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

      import java.util.List;

      @Configuration
      public class UserConfig extends WebMvcConfigurationSupport {

      @Override
      protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
       argumentResolvers.add(new LoginUserResolver());
      }
      }

        以上是代码结束,但要注意登录验证成功要把获取到的User  放到session里才行,以上如果对你有用劳烦动动手指,给某点个赞,不胜欢喜~

    如果对你有用,觉得好可以给小编打个赏: 

             

  • 相关阅读:
    8.2
    Telnet远程控制协议
    2020/6/29
    HCIA VRP基础命令(二)
    HCIA VRP基础命令(一)
    解决ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'报错问题
    nginx配置文件nginx.conf
    nginx服务器搭建
    FTP服务器
    NFS
  • 原文地址:https://www.cnblogs.com/luojiesheng/p/10627776.html
Copyright © 2011-2022 走看看