springboot1中处理是这样的

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter{ @Autowired
UserArgumentResolver userArgumentResolver; @Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(userArgumentResolver);
} }

再写一个参数处理类就可以了;

package com.cxy.config;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.cxy.domain.MiaoshaUser;
import com.cxy.service.MiaoshaUserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer; @Service
public class UserArgumentResolver implements HandlerMethodArgumentResolver { @Autowired
MiaoshaUserService userService; public boolean supportsParameter(MethodParameter parameter) {
Class<?> clazz = parameter.getParameterType();
return clazz==MiaoshaUser.class;
} public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class); String paramToken = request.getParameter(MiaoshaUserService.COOKI_NAME_TOKEN);
String cookieToken = getCookieValue(request, MiaoshaUserService.COOKI_NAME_TOKEN);
if(StringUtils.isEmpty(cookieToken) && StringUtils.isEmpty(paramToken)) {
return null;
}
String token = StringUtils.isEmpty(paramToken)?cookieToken:paramToken;
return userService.getByToken(response, token);
} private String getCookieValue(HttpServletRequest request, String cookiName) {
Cookie[] cookies = request.getCookies();
if(cookies == null || cookies.length <= ){
return null;
}
for(Cookie cookie : cookies) {
if(cookie.getName().equals(cookiName)) {
return cookie.getValue();
}
}
return null;
} }

如果你版本升级到2

那么就需要进行:

package com.cxy.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.List;
@Configuration
public class WebConfig1 implements WebMvcConfigurer{
@Autowired
UserArgumentResolver userArgumentResolver; @Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(userArgumentResolver);
}
}

最新文章

  1. ASCII、Unicode、GBK和UTF-8字符编码的区别联系
  2. Oracle之物化视图
  3. laravel页面间的传值
  4. 1-NPM
  5. Oracle创建表
  6. sql 时间向减函数
  7. zookeeper[1] (转)ZooKeeper Programmer&#39;s Guide(zookeeper编程向导)---中文
  8. EasyUI - DataGrid 组建 - [ 搜索功能 ]
  9. asp.net 给按钮 增加事件
  10. EF Core 遇到“可能会导致循环或多重级联路径”
  11. HTML 中的 href\src\url
  12. Your ApplicationContext is unlikely to start due to a @ComponentScan of the default
  13. linux上apache并发数与服务器内存关系计算!
  14. C#反射机制详解
  15. mysql密码篇(一)
  16. Sprint report
  17. VS2013创建Node.js C++ Addons的过程
  18. WPF中Popup等弹窗的位置不对(偏左或者偏右)
  19. 关于String和StringBuffer的原理
  20. .Net Core 部署到 CentOS7 64 位系统中的步骤

热门文章

  1. 【Java多线程系列一】Java实现线程方法
  2. 剑指offer——49礼物的最大价值
  3. 使用CSS将图片转换成黑白(灰色、置灰) &amp; 毛玻璃效果
  4. Asia Hong Kong Regional Contest 2019
  5. Java中++操作是同步的吗?为什么?
  6. redis 分析rdb中key
  7. linux 下格式化命令小记
  8. log4cplus TimeBasedRollingFileAppender
  9. ZMQ面面观
  10. Number 的扩展