本文訊(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里才行,以上如果對你有用勞煩動動手指,給某點個贊,不勝歡喜~
如果對你有用,覺得好可以給小編打個賞: