最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring自定義參數(shù)解析器代碼實例

 更新時間:2019年12月02日 11:26:45   作者:咸魚加點鹽  
這篇文章主要介紹了Spring自定義參數(shù)解析器代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Spring自定義參數(shù)解析器代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

結(jié)合redis編寫User自定義參數(shù)解析器UserArgumentResolver

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
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;
import cn.xingaohbd.seckil.model.User;
import cn.xingaohbd.seckil.service.UserService;

@Service
public class UserArgumentResolver implements HandlerMethodArgumentResolver {

  @Autowired
  public UserService userService;
  
  public String getParameterCokies(HttpServletRequest request,String tokenName){
    Cookie[] cookies = request.getCookies();
    for (Cookie ck : cookies) {
      if(ck.getName().equals(tokenName)){
        return ck.getValue();
      }
    }
    return null;
  }
  
  @Override
  public boolean supportsParameter(MethodParameter methodParameter) {
    Class<?> p_class = methodParameter.getParameterType();
    return p_class == User.class;
  }

  @Override
  public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
      NativeWebRequest nativeWebRequest, WebDataBinderFactory binderFactory) throws Exception {
    HttpServletRequest request = nativeWebRequest.getNativeRequest(HttpServletRequest.class);
    String requestParameter_token = request.getParameter("token");
    String cokies_token = getParameterCokies(request, "token");
    if(requestParameter_token == null && cokies_token == null){
      return null;
    }
    return userService.getUserFromRedisByToken(requestParameter_token != null ? requestParameter_token : cokies_token);
  }

}

UserService

@Service
@Transactional
public class UserServiceImpl implements UserService {
  @Autowired
  private UserRedis userRedis;

  @Override
  public Object getUserFromRedisByToken(String token) {
    return userRedis.get(token);
  }
}

在WebConfig中注冊自定義參數(shù)解析器UserArgumentResolver

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Configuration
public class WebConfig extends WebMvcConfigurationSupport{

  @Autowired
  UserArgumentResolver userArgumentResolver;
  
  @Override
  protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(userArgumentResolver);
  }

  public void addResourceHandlers(ResourceHandlerRegistry registry){
    registry.addResourceHandler("/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/");
    super.addResourceHandlers(registry);
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java詳解如何將excel數(shù)據(jù)轉(zhuǎn)為樹形

    Java詳解如何將excel數(shù)據(jù)轉(zhuǎn)為樹形

    在平常的辦公工作中,excel數(shù)據(jù)的操作是最常見的需求,今天就來看一下通過Java如何來實現(xiàn)將excel數(shù)據(jù)轉(zhuǎn)為樹形,感興趣的朋友可以了解下
    2022-08-08
  • 解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題

    解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題

    這篇文章主要介紹了解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • JAVA寶藏工具hutool的使用

    JAVA寶藏工具hutool的使用

    開發(fā)過程中總是會遇到需要自己自定義工具類的情況,做一些數(shù)據(jù)轉(zhuǎn)換、字符串操作、日期處理、加解密、編解碼、金額計算等,本文就詳細的介紹有一個工具類hutool的使用,感興趣的可以了解一下
    2021-10-10
  • Java中BufferedReader和BufferedWriter使用方式

    Java中BufferedReader和BufferedWriter使用方式

    這篇文章主要介紹了Java中BufferedReader和BufferedWriter使用方式,F(xiàn)ileWriter?類從?OutputStreamWriter?類繼承而來,BufferedReader?類從字符輸入流中讀取文本并緩沖字符,以便有效地讀取字符,數(shù)組和行
    2022-06-06
  • springboot jackson自定義序列化和反序列化實例

    springboot jackson自定義序列化和反序列化實例

    這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 迪米特法則_動力節(jié)點Java學(xué)院整理

    迪米特法則_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了迪米特法則,迪米特法則就是一個在類創(chuàng)建方法和屬性時需要遵守的法則,有興趣的可以了解一下
    2017-08-08
  • springboot如何使用sm2加密傳輸

    springboot如何使用sm2加密傳輸

    這篇文章主要介紹了springboot如何使用sm2加密傳輸問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 使用Springboot注入帶參數(shù)的構(gòu)造函數(shù)實例

    使用Springboot注入帶參數(shù)的構(gòu)造函數(shù)實例

    這篇文章主要介紹了使用Springboot注入帶參數(shù)的構(gòu)造函數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例

    java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例

    本文主要介紹了java操作gaussDB數(shù)據(jù)庫的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • springboot?vue接口測試定義編輯功能的實現(xiàn)

    springboot?vue接口測試定義編輯功能的實現(xiàn)

    這篇文章主要為大家介紹了springboot?vue接口測試定義編輯功能的實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論

繁昌县| 湖南省| 乳山市| 诸城市| 凤山市| 新竹市| 丁青县| 乐山市| 怀柔区| 敖汉旗| 太和县| 增城市| 扶绥县| 利川市| 金溪县| 昆山市| 鄂尔多斯市| 无锡市| 调兵山市| 余干县| 明水县| 翁牛特旗| 凤庆县| 辰溪县| 宝应县| 青阳县| 方正县| 巴楚县| 湛江市| 靖宇县| 离岛区| 桃江县| 安图县| 昭苏县| 祁东县| 凉城县| 响水县| 松阳县| 剑川县| 新巴尔虎左旗| 英吉沙县|