Spring MVC @EnableWebMvc“禁用”Jackson 2 ObjectMapper构建器定制器如何修复?

toiithl6  于 2023-01-17  发布在  Spring
关注(0)|答案(1)|浏览(172)

我已配置注解内省器(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配置/修复设置注解内省器吗?

vuktfyat

vuktfyat1#

“不要添加@EnableWebMvc。Sping Boot 会自动设置spring mvc,而不添加它。这里和这里讨论了类似的问题。”根据teppic的回答。我尝试过这个方法。在我的场景中,我无法将本地日期序列化为我的json字符串。没有Jackson 2 ObjectMapperBuilderCustomizer bean,我将以数组的形式获取日期。请参考this问题以了解确切的问题

相关问题