2 回答

TA貢獻1765條經驗 獲得超5個贊
就我而言,我必須手動配置消息轉換器。我將其添加到以下各項的實現中:WebMvcConfigurer
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.serializerByType(PageImpl.class, new PageJsonSerializer());
converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}

TA貢獻1864條經驗 獲得超6個贊
我能夠通過做兩件事來解決我的問題。
@Component
public class PageJsonSerializer extends StdSerializer<Page> {
擴展而不是我實際上不知道這是否是解決方案的一部分。StdSerializerJsonSerializer
我認為真正的幫助來自手動注冊序列化程序,而不是依賴于 .@JsonComponent
所以我現在看起來像這樣。ObjectMapperConfigurer
public class ObjectMapperConfigurer {
public static ObjectMapper configureObjectMapper(ObjectMapper objectMapper) {
return objectMapper.registerModules(
// First three modules can be found here. https://github.com/FasterXML/jackson-modules-java8
new Jdk8Module(), // support for other new Java 8 datatypes outside of date/time: most notably Optional, OptionalLong, OptionalDouble
new JavaTimeModule(), // support for Java 8 date/time types (specified in JSR-310 specification)
new ParameterNamesModule(), // Support for detecting constructor and factory method ("creator") parameters without having to use @JsonProperty annotation
// Manually registering my serializer.
new SimpleModule().addSerializer(Page.class, pageJsonSerializer),
... all the same
}
我還從我的對象映射器中刪除了 ,因為它似乎已損壞。JsonComponentModule
添加回答
舉報