我已配置注解内省器(source)
public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
jacksonObjectMapperBuilder.annotationIntrospector(
new JacksonAnnotationIntrospector() {
@Override
public JsonPOJOBuilder.Value findPOJOBuilderConfig(AnnotatedClass ac) {
if (ac.hasAnnotation(
JsonPOJOBuilder.class)) {//If no annotation present use default as empty prefix
return super.findPOJOBuilderConfig(ac);
}
return new JsonPOJOBuilder.Value("build", "");
}
}
);
}
};
}
在我将@EnableWebMvc
添加到Applciation
类之前,一切都正常。现在所有带有lombok @Value
和@Builder
注解的dto都用null填充。看起来我的注解内省器在某个地方被spring取代了。但是在哪里呢?Sping Boot 文档说定义Jackson2ObjectMapperBuilderCustomizer
bean就足够了。
你知道如何用@EnableWebMvc
配置/修复设置注解内省器吗?
1条答案
按热度按时间vuktfyat1#
“不要添加@EnableWebMvc。Sping Boot 会自动设置spring mvc,而不添加它。这里和这里讨论了类似的问题。”根据teppic的回答。我尝试过这个方法。在我的场景中,我无法将本地日期序列化为我的json字符串。没有Jackson 2 ObjectMapperBuilderCustomizer bean,我将以数组的形式获取日期。请参考this问题以了解确切的问题