如何在没有 setter 的情况下绑定请求参数?
2022-09-04 22:17:54
我有一个简单的控制器,带有一个GET处理程序,它接受一个对象来绑定请求参数:
@RestController
@RequestMapping("/test")
public class SampleController {
@GetMapping
public SomeResponse find(RequestParams params) {
// some code
}
}
这是一个简单的 POJO 类:RequestParams
public class RequestParams {
private String param1;
private String param2;
// constructor, getter, and setters
}
Everthing工作正常,但我想摆脱设置器,使对象不可变地公开使用。在截至 Spring 5.0.2 的处理程序方法文档中,我们读到可能的有效方法参数是:@RequestMapping
命令或表单对象,用于将请求参数绑定到 Bean 属性(通过 setter)或直接绑定到字段
是否可以以某种方式覆盖默认的 Spring Boot 配置,以便使用反射而不是 setter 将请求参数绑定到类属性?
2018 年更新
在Spring文档的更高版本中,引用的语句已被改写,不再包含有关将请求参数直接绑定到字段的信息。