2017-05-31 66 views
0

我对Jackson的Spring Boot customizer有问题。调试它似乎已配置,但杰克逊在(德)序列化期间不使用该模型。如何在Spring Boot中为jackson-datatype-money创建Jackson Customizer?

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

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

+0

也注意到JSR-310的东西现在不能正常工作。调试spring引导如何应用这些模块并使用生成的ObjectMapper的最佳方法的任何提示? –

回答

1

这是定制它的方法之一。

为了增加一个模块一个更简单的方法是只要定义模块作为一个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

更可能有一个问题与实现比模块本身的注册。

+0

我试过了,我得到了相同的结果,所以我切换到定制器。但我仍然不知道为什么它不适用于我的MonetaryAmount。 –

相关问题