山西建设部网站查询,微信公众号上发布wordpress,公众号制作平台,常用的网站推广前言#xff1a;
在前面我们已经了解到#xff0c;Spring Boot项目中#xff0c;可以传递一个参数#xff0c;或者多个参数#xff0c;但是#xff0c;随着参数的增加#xff0c;咱们总不能每增加一个参数#xff0c;就重新写一段代码吧#xff1f;#xff1f;这样显…前言
在前面我们已经了解到Spring Boot项目中可以传递一个参数或者多个参数但是随着参数的增加咱们总不能每增加一个参数就重新写一段代码吧这样显得很是臃肿因此我们可以将多个参数封装成一个对象来进行传递每当增加一个参数的时候就在对象里面增加一个属性并重写Setter getter toString方法等操作来简化代码这样就显得很简单方便操作了
假设这是我们一开始的代码
RestController
RequestMapping(/param)
public class ParamController {RequestMapping(/m1)public String m1(String name){return 这是你的姓名name;}}
当我们不仅仅满足一个name属性的时候开始增加一个参数id那么此时的代码可以为
RestController
RequestMapping(/param)
public class ParamController {RequestMapping(/m1)public String m1(String name){return 这是你的姓名name;}RequestMapping(/m2)public String m2(String name,Integer id){return 序列号为 id 这是你的姓名name;}}
问题
当我们不仅仅满足一个name和id属性的时候开始增加一个参数age那么此时我们就得思考一下了如果只是这么几个属性的话简单的增加是没啥问题的但是当属性越来越多成百上千的话我们又该如何处理是一直这么写下去吗这得显得多么臃肿啊显得不是很美观
解决方案
那么正确的做法首推为创建一个对象并重写Setter getter toString方法等
假设创建一个Person类
//将参数封装为对象
public class Person {Integer id;String name;Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}Overridepublic String toString() {return Person{ id id , name name \ , age age };}
}此时我们在Spring Boot项目中来进行传递的时候便可以将Person对象传入即可 //将Person对象传入RequestMapping(/m3)public String m3(Person person){return 接收到的参数Person:person.toString();}
重写启动程序 在浏览器中输入localhost:8080/param/m3 当我们对其中某个参数赋值的时候localhost:8080/param/m3?id10namezhangsan 显而易见当我们对其中某个参数赋值客户端返回的就是我们所赋值的参数数据当我们对其中某个元素没有赋值的情况下客户端返回的就是null或者其他默认值 当然我们也可以用Postman来操作一下 在没有参数传入的时候http://localhost:8080/param/m3 在只传入某个参数的时候