JSON сериализатор с пружинной загрузкой

У меня есть BigDecimalSerializer

public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {

@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers)
  throws IOException {
gen.writeString(value.setScale(6, BigDecimal.ROUND_HALF_UP).toString());
}
}

а потом

 @JsonSerialize(using = BigDecimalSerializer.class)
 private BigDecimal foo;

Есть ли способ, чтобы вместо того, чтобы делать аннотации в каждой переменной-члене, я говорю весенней загрузке сразу, что относится ко всем проектам?

1 ответ

Попробуйте настроить ObjectMapper добавив пользовательский модуль. Если вы используете spring-data-rest это может выглядеть так:

@Configuration
public static class ObjectMapperConfigurer extends RepositoryRestConfigurerAdapter {
    @Override
    public void configureJacksonObjectMapper(final ObjectMapper objectMapper) {
        SimpleModule myModule = new SimpleModule();
        myModule.addSerializer(BigDecimal.class, BigDecimalSerializer.class);           
        objectMapper.registerModule(myModule));
    }
}

В противном случае просто предоставьте свой собственный ObjectMapper bean и настройте его при создании.

Другие вопросы по тегам