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
添加回答
举报
