Witam
uczę się springa i z tego co wiem jak mam
najprostszego POST'a w springu
i w postmanie w body dam obiekt z fieldami dodatkowymi to powinien mi Spring rzucić wyjątek a tymczasem zachowuje się tak jakbym na Dto w @RequestBody dodał @JsonIgnoreProperties(ignoreUnknow= true)
próbowałem też zmienić parametr na wartośc domyślną czyli false i nie ma to znaczenie.
W każdym przypadku mogę dodać nowe fieldy w postmanie w body Jsona wysyłanego z callem POST'a i przechodzi.
Nie wrzucam kodu bo z tego co widzę w każdym przypadku jaki tylko example z neta znajdę działa to tak jak opisałem
a wiem, że te adnotacje są potrzebne.
Czemu nie ma to efektu?
Zakładając, że mówisz defaultowym Spring MVC:
The ObjectMapper (or XmlMapper for Jackson XML converter) instance (created by default) has the following customized properties:
...
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES is disabled
faktycznie przez to nie działa,
dodałem config:
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
b.failOnUnknownProperties(true);
return b;
}
i teraz faktycznie spring wyrzuca mi exception.
Tyle, że teraz mam odwrotną sytuację -> cawsze failuje z dodatkowym polem mimo dodania @JsonIgnoreProperties(ignoreUnknow= true)
czemu nie moge tym sterować właśnie z poziomu '@JsonIgnoreProperties(ignoreUnknow= true)' a nie tylko rozwiązanie globalne, które przecież nie wszędzie musi być dla mnie odpowiednie.
sorki za post za postem ale che pokazać jak zmieniłem, że zadziałało:
przerobiłem config:
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
b.annotationIntrospector(new JacksonAnnotationIntrospector());
b.failOnUnknownProperties(true);
return b;
}
i teraz czyta adnotacje