Кроме того, существуют ли способы «автоматического связывания» таких зависимостей с помощью Spring?
Код: Выделить всё
@JsonDeserialize(using=DateTimeFormatDeserializer.class)
Код: Выделить всё
public class DateTimeFormatDeserializer extends JsonDeserializer{
// no declared constructor, implicit no-args only
@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt)
Код: Выделить всё
@JsonProperty("Evn_setDT") // weirdly named property coming from external API
@JsonSerialize(using = DateTimeFormatSerializer.class)
@JsonDeserialize(using = DateTimeFormatDeserializer.class)
private Date evnSetDT;
Код: Выделить всё
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.deserializerByType(Date.class, new DateTimeFormatDeserializer(myService)); // Register the deserializer bean
return builder;
}
Я хотел бы внедрить поддерживаемые форматы дат в десериализатор, чтобы такие форматы можно было перечислить в файле свойств и при необходимости изменить без пересборки проекта (или внедрения непосредственно в модульный тест).
Java 8, Jackson 2.13.2.2, Spring 5.3.18.>