Nde*_*yqi 12 java spring jackson jsr310
我已经添加了 JavaTimeModule,但仍然无法让 OffsetDateTime 从 RethinkDB @Configuration public class JacksonOffsetDateTimeMapper{ 获取一些数据
@Bean
@Primary
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
return builder.build()
.registerModule(new JavaTimeModule());
}
Run Code Online (Sandbox Code Playgroud)
}
Jackson 的 Gradle 依赖项:实现组:'com.fasterxml.jackson.core',名称:'jackson-databind',版本:'2.13.1'
实现 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
实现组:'com.fasterxml.jackson.module',名称:'jackson-module-parameter-names',版本:'2.13.1'
不由 Spring 管理并使用“new ObjectMapper()”而不是自动装配的对象仍然会面临这个问题。我在配置 MappingJackson2MessageConverter 以与 JMS 一起使用时遇到了这个问题,因此在这种情况下,我必须将 ObjectMapper 显式设置为 MappingJackson2MessageConverter 对象,如下所示。
@Bean
public MessageConverter messageConverter(){
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
converter.setObjectMapper(objectMapper());
return converter;
}
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
return objectMapper;
}
Run Code Online (Sandbox Code Playgroud)
此外,我们还可以在 objectMapper 方法之上添加 @Bean 注释,这样 Spring 管理的对象将使用此映射器。
如果已经有一个由 Spring 管理的 ObjectMapper,我们可以将 ObjectMapper 注入到 messageConvert 中,如下所示。
@Bean
public MessageConverter messageConverter(ObjectMapper objectMapper)
{
MappingJackson2MessageConverter converter = new
MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
converter.setObjectMapper(objectMapper);
return converter;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14814 次 |
| 最近记录: |