2

我对 Jackson 的这个 Spring Boot 定制器有疑问。调试它似乎已配置,但杰克逊在(反)序列化期间没有使用该模型。

import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.stereotype.Component;
import org.zalando.jackson.datatype.money.MoneyModule;


@Component
public class JacksonMoneyDatatypeCustomizer implements Jackson2ObjectMapperBuilderCustomizer {

    @Override
    public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
        jacksonObjectMapperBuilder.modulesToInstall(new MoneyModule());
    }
}

这是解决这个问题的正确方法吗?

4

1 回答 1

2

这是自定义它的方法之一。

对于添加模块,更简单的方法是将模块定义为 bean,然后将其拾取并添加到ObjectMapper

@Bean
public Module moneyModule(){
      return new MoneyModule();
}

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-customize-the-jackson-objectmapper

与模块本身的注册相比,实现更可能存在问题。

于 2017-05-31T20:44:08.213 回答