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里才行,以上如果对你有用劳烦动动手指,给某点个赞,不胜欢喜~
如果对你有用,觉得好可以给小编打个赏: