1. 程式人生 > >SpringBoot方法中獲取Request和Response

SpringBoot方法中獲取Request和Response

很多時候方法中沒有帶引數HttpServletRequest 和HttpServletResponse ,但是我們需要用到這個引數。

場景:

我們將使用者的登陸資訊存入了redis以token作為Key,在某些地方需要獲取使用者資訊,我們就需要獲取請求頭中的token。

這時候我們需要獲取HttpServletRequest來獲取 請求頭。

public Integer getUserId() {
		ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    	HttpServletRequest request = sra.getRequest();
    	//HttpServletResponse response = sra.getResponse();  
    	return Integer.valueOf((String)redisTemplate.opsForHash().get(UserConstant.TOKEN_KEY + request.getHeader("token"), "userId"));
	}