我有一个接受一个对象绑定请求参数的GET处理的简单控制器:如何在没有setter的情况下绑定请求参数?
@RestController
@RequestMapping("/test")
public class SampleController {
@GetMapping
public SomeResponse find(RequestParams params) {
// some code
}
}
的RequestParams
是一个简单的POJO类:
public class RequestParams {
private String param1;
private String param2;
// constructor, getter, and setters
}
寄托都工作正常,但我想摆脱setter使对象不可变为公共使用。在documentation为@RequestMapping
处理方法中,我们读到 可能的有效方法的参数是:
的命令或表单对象
是否有可能以某种方式覆盖默认的Spring Boot配置,以便请求参数使用反射绑定到类属性,而不使用setter?
不幸的是,如果字段的范围更改为'public'并且setter被删除,则请求参数不会绑定到该对象。即便如此,我的目标是保持对象不变,至少对公众有用,因此将对象公开只会让事情变得更糟。 –