0

我有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;

有什么方法可以代替在每个成员变量中进行注释,而是立即告诉 spring boot 适用于所有项目?

4

1 回答 1

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));
    }
}

否则,只需提供您自己的ObjectMapperbean 并在创建时对其进行配置。

于 2019-05-16T08:24:50.300 回答