Хм, я не вижу ничего связанного с подменышами
я есть следующие DTO:
@Value
public class PracticeResults {
@NotNull
Map<Long, Boolean> wordAnswers;
}
@Value
public class ProfileMetaDto {
@NotEmpty
String name;
@Email
String email;
@Size(min = 5)
String password;
}
@Value - это аннотация Lombok, которая генерирует конструктор. Это означает, что этот класс не имеет конструктора без аргументов.
Я использовал Spring Boot 1.4.3.RELEASE, и компонент ObjectMapper мог десериализовать такой объект из json.
После обновления до Spring Boot 2.0.0.M7 я получаю следующее исключение:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of PracticeResults (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
Версия Jackson, используемая в Spring Boot 1.4.3,2.8.10
а для Spring Boot 2.0.0.M7 есть2.9.2
.
Я пытался Google эту проблему, но нашел только решения с@JsonCreator
или же@JsonProperty
.
Итак, почему он работает с Spring Boot 1.4.3 и не работает с Spring Boot 2? Можно ли настроить бин так, чтобы он вел себя так же, как и в старой версии?