春天自定义参数解析器代码实例

  

这篇文章主要介绍了弹簧自定义参数解析器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

结合复述,编写用户自定义参数解析器UserArgumentResolver
  

        进口javax.servlet.http.Cookie;   进口javax.servlet.http.HttpServletRequest;   进口org.springframework.beans.factory.annotation.Autowired;   进口org.springframework.core.MethodParameter;   进口org.springframework.stereotype.Service;   进口org.springframework.web.bind.support.WebDataBinderFactory;   进口org.springframework.web.context.request.NativeWebRequest;   进口org.springframework.web.method.support.HandlerMethodArgumentResolver;   进口org.springframework.web.method.support.ModelAndViewContainer;   进口cn.xingaohbd.seckil.model.User;   进口cn.xingaohbd.seckil.service.UserService;      @ service   公共类UserArgumentResolver实现HandlerMethodArgumentResolver {      @ autowired   公共UserService UserService;      公共字符串getParameterCokies (HttpServletRequest请求,字符串tokenName) {   饼干饼干[]=request.getCookies ();   (饼干ck:饼干){   如果(ck.getName () .equals (tokenName)) {   返回ck.getValue ();   }   }   返回null;   }      @Override   公共布尔supportsParameter (MethodParameter MethodParameter) {   Class<& # 63;比;p_class=methodParameter.getParameterType ();   返回p_class==User.class;   }      @Override   公共对象resolveArgument (MethodParameter参数,ModelAndViewContainer mavContainer,   {NativeWebRequest NativeWebRequest, WebDataBinderFactory binderFactory)抛出异常   HttpServletRequest请求=nativeWebRequest.getNativeRequest (HttpServletRequest.class);   字符串requestParameter_token=request.getParameter(“令牌”);   字符串cokies_token=getParameterCokies(请求,“令牌”);   如果(requestParameter_token==零,,cokies_token==null) {   返回null;   }   userService返回。getUserFromRedisByToken (requestParameter_token !=null & # 63;requestParameter_token: cokies_token);   }      }      

UserService         @ service   @ transactional   公共类UserServiceImpl实现UserService {   @ autowired   私人UserRedis UserRedis;      @Override   公共对象getUserFromRedisByToken(字符串标记){   返回userRedis.get(令牌);   }   }      

在WebConfig中注册自定义参数解析器UserArgumentResolver

        进口并不知道;   进口org.springframework.beans.factory.annotation.Autowired;   进口org.springframework.context.annotation.Configuration;   进口org.springframework.util.ResourceUtils;   进口org.springframework.web.method.support.HandlerMethodArgumentResolver;   进口org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;   进口org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;      @ configuration   公开课WebConfig延伸WebMvcConfigurationSupport {      @ autowired   UserArgumentResolver UserArgumentResolver;      @Override   保护无效addArgumentResolvers (ListargumentResolvers) {   argumentResolvers.add (userArgumentResolver);   }      公共空间addResourceHandlers (ResourceHandlerRegistry注册表){   registry.addResourceHandler (“/* *”) .addResourceLocations (ResourceUtils.CLASSPATH_URL_PREFIX +/静态/);   super.addResourceHandlers(注册表);   }   }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

春天自定义参数解析器代码实例