springboot的get请求可以通过多种方式获取参数,但是如果一个get请求的参数太多,通过 下面这种方式:
@GetMapping("/getobj")
public Object getObjByParam(@RequestParam("name") String name,@RequestParam("sex")String sex,@RequestParam("name")int age){
String str = "test = " + age+" name = "+name +" sex = "+sex;
logger.info(str);
return age;
}
显然给代码维护和阅读带来不便,可以通过构造一个对象来简化参数的接收方式如下:
@GetMapping("/getobj")
public Object getObj(Test test){
logger.info("test = " + test);
return test;
}
public static class Test{
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
通过这种方式,参数中就可以直接将多个参数通过getter,setter方法注入到对象中去。POST方式更不用说了,肯定是支持的。个人建议,在三个参数一下,可以通过基本类型接收参数,多个参数,用一个对象接受比较方便一些。
完整的代码如下:
请求:http://localhost:8112/regula/test/getobj?name=zhang&age=28&sex=男
controller:
/**
@author: kewei.zhang
@Date: 2017/12/13
@Time: 下午6:30
-
Description: 用于测试一些功能的测试模块,不属于业务
*/
@RestController
@RequestMapping("/test")
public class TestController extends BaseController{@GetMapping("/getobj")
public Object getObj(Test test){
logger.info("test = " + test);
return test;
}
@GetMapping("/getobj")
public Object getObjByParam(@RequestParam("name") String name,@RequestParam("sex")String sex,@RequestParam("name")int age){
String str = "test = " + age+" name = "+name +" sex = "+sex;
logger.info(str);
return age;
}
public static class Test{
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
}