一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot接收單個String入參的解決方法

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

2021-06-09 13:58swugogo Java教程

這篇文章主要給大家介紹了關于Spring Boot接收單個String入參的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

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

場景:

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

思路:

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

方式方法:

1.定義一個注解

?
1
2
3
4
5
6
7
8
9
10
@target(elementtype.parameter)
@retention(retentionpolicy.runtime)
@documented
public @interface requestsingleparam {
 string value();
 
 boolean required() default true;
 
 string defaultvalue() default "";
}

2.定義解析器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()方法)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@springbootapplication
@enablewebmvc
public 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中就能獲取到"張三”

?
1
2
3
4
@requestmapping(value = "/test",method = requestmethod.post)
public void test(@requestsingleparam(value = "name") string name){
  system.out.println(name);
}

總結

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

原文鏈接:http://www.cnblogs.com/swugogo/p/9885509.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人在线视频国产 | 欧美同性videos| 国产成人精选免费视频 | 欧美日韩在线观看一区二区 | 国产自拍专区 | 我们日本在线观看免费动漫下载 | 免费在线观看小视频 | 日韩精品一区二区三区中文在线 | 黄动漫车车好快的车车a | 亚洲国产精品久久网午夜小说 | 免费在线视频一区 | 亚洲欧美国产精品完整版 | 人禽l交免费视频观看+视频 | ange venus与黑人 | 国产一级在线观看 | 久久久精品免费视频 | 久久婷婷五月综合色丁香花 | 美女污视频在线观看 | 国产精品福利 | 桥本有菜在线四虎福利网 | 亚洲天堂免费观看 | 青草视频免费观看在线观看 | 特级老女人淫片高清视频 | 美女翘臀跪床被打屁股作文 | 五月色婷婷网在线观看 | 5555kkkk香蕉在线观看 | 九九热视频免费观看 | 无限在线观看视频大全免费高清 | 成功精品影院 | 视频一区二区三区在线 | 亚洲 欧美 国产 在线 日韩 | 美女毛片在线 | 亚洲国产欧美在线看片 | 国产在线精品香蕉综合网一区 | 国产精品反差婊在线观看 | 国产青青草| 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 欧亚专线欧洲m码可遇不可求 | 国产一级一级一级成人毛片 | 亚洲 欧美 在线观看 | 无耻之徒第十一季在线观看 |