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里才行,以上如果對你有用勞煩動動手指,給某點個贊,不勝歡喜~

如果對你有用,覺得好可以給小編打個賞: 

         

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM