【发布时间】:2017-01-28 01:27:02
【问题描述】:
我在 SpringBoot 中定义了一个 Spring Controller。
我想传入整个对象,而不是重复 MyCustomObject 的所有字段来节省一些输入。
@ResponseBody
@RequestMapping(value = "add", method = RequestMethod.POST)
public ResponseEntity<?> add(@ModelAttribute MyCustomObject myObj) { }
在测试请求方法时,我不确定各个请求参数名称是什么。我会虽然它会直接是字段名称。我的命名约定是将“m”作为前缀。
事实证明,Spring 决定通过反复试验设置的请求参数没有m,例如'鸡'而不是'mChicken'。我想知道是什么在控制它。也许它使用了 set/get 方法名称,只是去掉了那里的 get/set 前缀?
另外,我想知道以这种方式使用@ModelAttribute 是否正确。我不确定开发前端的人会在这里做什么,如果他们看我的弹簧控制器,或者其他发布 REST api 的东西。也许最好有单独的参数,而不是在那里有一个完整的@ModelAttribute。但是,它确实为我节省了一些尝试从各个参数以编程方式创建对象的精力。
@Entity
@Table(name = "my_stuff")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class MyCustomObject{
private String mBeef;
private String mChicken;
public String getBeef() {}
public void setBeef(String beef);
public String getChicken() {}
public void setChicken(String chicken);
}
Spring Boot 中有没有办法查看服务器上的 REST API(使用 gradlew bootRun 手动测试)。最好验证实际参数。
【问题讨论】:
标签: java spring spring-mvc spring-boot