Mam proste kontroler z obsługi GET, który akceptuje obiekt powiązać parametry żądanie:Jak powiązać żądania bez ustawiaczy?
@RestController
@RequestMapping("/test")
public class SampleController {
@GetMapping
public SomeResponse find(RequestParams params) {
// some code
}
}
RequestParams
to prosta klasa POJO:
public class RequestParams {
private String param1;
private String param2;
// constructor, getter, and setters
}
Everthing działa dobrze, ale chciałbym pozbyć się ustawiaczy, aby obiekt był niezmienny do użytku publicznego. W metodzie modułu obsługi documentation dla @RequestMapping
czytamy, że ewentualne argumenty ważne metody są:
poleceń lub tworzą przedmioty wiążą parametry żądania do właściwości fasoli (przez ustawiaczy) lub bezpośrednio do pól
Czy można w jakiś sposób przesłonić domyślną konfigurację Spring Boot, aby parametry żądania były powiązane z właściwościami klasy za pomocą odbicia, a nie z ustawiaczami?
Niestety, jeśli zakres pól zostanie zmieniony na "publiczny", a setery zostaną usunięte, parametry żądania nie są powiązane z obiektem. Nawet jeśli moim celem jest utrzymanie obiektu niezmiennie, przynajmniej do użytku publicznego, a więc upublicznienie pól tylko pogorszyłoby sytuację. –