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

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

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

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

結(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中注冊(cè)自定義參數(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);
  }
}

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

相關(guān)文章

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

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

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

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

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

    JAVA寶藏工具h(yuǎn)utool的使用

    開發(fā)過程中總是會(huì)遇到需要自己自定義工具類的情況,做一些數(shù)據(jù)轉(zhuǎn)換、字符串操作、日期處理、加解密、編解碼、金額計(jì)算等,本文就詳細(xì)的介紹有一個(gè)工具類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自定義序列化和反序列化實(shí)例

    springboot jackson自定義序列化和反序列化實(shí)例

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

    迪米特法則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

    springboot如何使用sm2加密傳輸

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

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

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

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

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

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

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

最新評(píng)論

安康市| 洛扎县| 乳源| 贵定县| 耒阳市| 武夷山市| 伊川县| 江源县| 嘉鱼县| 呼和浩特市| 德兴市| 喜德县| 保亭| 石城县| 奉节县| 玉树县| 临清市| 桂东县| 江永县| 阳信县| 丹阳市| 喀喇| 临泉县| 石门县| 竹溪县| 咸丰县| 丰城市| 武汉市| 恩施市| 九台市| 泽普县| 霍城县| 隆安县| 乐山市| 金沙县| 泽库县| 庆阳市| 三穗县| 罗山县| 曲周县| 河池市|