麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Spring Boot接收單個String入參的解決方法

2024-07-14 08:42:44
字體:
來源:轉載
供稿:網友

前言

接受參數是我們在日常開發中經常會遇到的一個需求,下面這篇文章主要給大家介紹了關于Spring Boot接收單個String入參之解決方案的相關內容,下面話不多說了,來一起看看詳細的介紹吧

場景:

在做接口時,有的時候,接口入參只需要一個參數,如果將一個參數封裝成一個對象很麻煩,故有了以下方式:

思路:

spring自帶的參數解析器貌似是不具備這個能力的,所有自定義

方式方法:

1.定義一個注解

@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface RequestSingleParam { String value(); boolean required() default true; String defaultValue() default "";}

2.定義解析器

public class RequestSingleParamHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) {  return parameter.hasParameterAnnotation(RequestSingleParam.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,         NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {  RequestSingleParam requestSingleParam = parameter.getParameterAnnotation(RequestSingleParam.class);  HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);  BufferedReader reader = request.getReader();  StringBuilder sb = new StringBuilder();  char[] buf = new char[1024];  int rd;  while ((rd = reader.read(buf)) != -1) {   sb.append(buf, 0, rd);  }  JSONObject jsonObject = JSONObject.parseObject(sb.toString());  String value = requestSingleParam.value();  return jsonObject.get(value); }}

3.修改Springboot啟動類

(a.繼承WebMvcConfigurerAdapter;b.重寫addArgumentResolvers()方法)

@SpringBootApplication@EnableWebMvcpublic class SpringbootDemoApplication extends WebMvcConfigurerAdapter { public static void main(String[] args) {  SpringApplication.run(SpringbootDemoApplication.class, args); } @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers){  argumentResolvers.add(new RequestSingleParamHandlerMethodArgumentResolver());  super.addArgumentResolvers(argumentResolvers); }}

4.在Controller中應用 

調用接口方,傳參如: {“name”:"張三"},Controller中就能獲取到"張三”

 @RequestMapping(value = "/test",method = RequestMethod.POST) public void test(@RequestSingleParam(value = "name") String name){   System.out.println(name); }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色成人小视频 | 国产精品中文在线 | 视频毛片 | 久久精品久 | 伦理三区 | 激情视频在线播放 | va视频在线| 在线免费观看毛片视频 | 免费毛片视频播放 | 亚洲一区在线免费视频 | 亚洲男人一区 | 日本在线播放一区二区 | 久久精品综合视频 | 国产精品呻吟 | 日韩一级片黄色 | 日韩av有码在线 | 中文字幕爱爱视频 | 精品国产一区二区三 | 亚洲xxx在线观看 | 精品国产高清一区二区三区 | 欧美ab| 天使萌一区二区三区免费观看 | 成年免费视频黄网站在线观看 | 久久欧美亚洲另类专区91大神 | 亚洲免费片 | 在线高清中文字幕 | 原来神马影院手机版免费 | 久久影院午夜 | 九九精品在线 | 黄色99视频 | 男女污污视频网站 | 国产流白浆高潮在线观看 | av成人免费观看 | 精品国产一区二区三区四区在线 | 日韩av在线资源 | julieann艳星激情办公室 | 国产精品免费观在线 | 成人国产精品一区二区毛片在线 | 国产精品成人免费一区久久羞羞 | 婷婷中文字幕一区二区三区 | 免费黄色小视频网站 |