SpringBoot中@GetMapping参数接收理解
Posted OkidoGreen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot中@GetMapping参数接收理解相关的知识,希望对你有一定的参考价值。
当参数为基本类型时
@GetMapping("/example1")
public void example1(Float money, String product)
System.out.println("product:"+ product);//product:洗洁精
System.out.println("money:"+ money);//money:123.0
//请求url:http://localhost:8888/example1?money=123&product=洗洁精
当参数为数组时
@GetMapping("/example2")
public void example2(String[] keywords)
if (keywords != null)
for (int i=0; i<keywords.length; i++)
System.out.println(keywords[i]);//123 456
//请求url:http://localhost:8888/example2?keywords=123,456
当参数为简单对象时
@GetMapping("/example3")
public void example3(SubTest1 subTest1)
System.out.println(subTest1);//SubTest1content='测试内容'
//请求url:http://localhost:8888/example3?content=测试内容
public class SubTest1
private String content;
public String getContent()
return content;
public void setContent(String content)
this.content = content;
@Override
public String toString()
return "SubTest1" +
"content='" + content + '\\'' +
'';
当参数的对象中嵌套着对象,对象中的属性为list和map时
@GetMapping("/example4")
public void example4(TestDto testDto)
System.out.println(testDto);//TestDtotitle='测试标题', subTest=SubTestids=[123, 456], map=k=value, subTest1=SubTest1content='测试内容'
//请求url:http://localhost:8888/example4?title=测试标题&subTest.ids[0]=123&subTest.ids[1]=456&subTest.map[k]=value&SubTest1.content=测试内容
public class TestDto
private String title;
private SubTest subTest;
private SubTest1 subTest1;
public SubTest1 getSubTest1()
return subTest1;
public void setSubTest1(SubTest1 subTest1)
this.subTest1 = subTest1;
@Override
public String toString()
return "TestDto" +
"title='" + title + '\\'' +
", subTest=" + subTest +
", subTest1=" + subTest1 +
'';
public String getTitle()
return title;
public void setTitle(String title)
this.title = title;
public SubTest getSubTest()
return subTest;
public void setSubTest(SubTest subTest)
this.subTest = subTest;
public class SubTest
private List<Long> ids;
private Map map;
public Map getMap()
return map;
public void setMap(Map map)
this.map = map;
public List<Long> getIds()
return ids;
public void setIds(List<Long> ids)
this.ids = ids;
@Override
public String toString()
return "SubTest" +
"ids=" + ids +
", map=" + map +
'';
//TODO:在直接用list作为参数的时候,程序会报错的;直接用map作为参数的时候,没办法获取到值,都是null,但是不会报错;不知道是姿势错误,还是本身不支持;
map参考:
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于SpringBoot中@GetMapping参数接收理解的主要内容,如果未能解决你的问题,请参考以下文章
Springboot @GetMapping 自动接收对象参数源码分析
Springboot @GetMapping 自动接收对象参数源码分析
Spring Boot:以 Pageable 作为请求参数的 @GetMapping 无法按预期工作