Spring Boot Jackson2ObjectMapperBuilderCustomizer无法正常工作
我想使用以下配置来自定义Java8 LocalDateTime模式
@Bean
@Primary
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return builder -> {
builder.simpleDateFormat(dateTimeFormat)
.serializerByType(LocalDateTime.class,
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimeFormat)))
.deserializerByType(LocalDateTime.class,
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateTimeFormat)))
.serializerByType(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormat)))
.deserializerByType(LocalDate.class,
new LocalDateDeserializer(DateTimeFormatter.ofPattern(dateFormat)))
.serializerByType(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(timeFormat)))
.deserializerByType(LocalTime.class,
new LocalTimeDeserializer(DateTimeFormatter.ofPattern(timeFormat)));
};
}
但不起作用,Spring Boot版本2.6.9,该项目集成了春季云组件,例如Feing Eureka等。但是在我的Spring Boot Project中,没有Spring Cloud Cloud Coponents,上面的config工作。 ,
最后我配置了httpmessageconverters解决此问题?
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// jackson单独配置,参考:https://segmentfault.com/a/1190000041997183
converters.removeIf(converter -> converter instanceof MappingJackson2HttpMessageConverter);
converters.add(0, mappingJackson2HttpMessageConverter);
}
这两个项目都启用Weablewbmvc并扩展了WebMvcconFigurer以配置拦截器
@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {
I want to use the following config to customize java8 localdatetime pattern
@Bean
@Primary
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return builder -> {
builder.simpleDateFormat(dateTimeFormat)
.serializerByType(LocalDateTime.class,
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimeFormat)))
.deserializerByType(LocalDateTime.class,
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateTimeFormat)))
.serializerByType(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormat)))
.deserializerByType(LocalDate.class,
new LocalDateDeserializer(DateTimeFormatter.ofPattern(dateFormat)))
.serializerByType(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(timeFormat)))
.deserializerByType(LocalTime.class,
new LocalTimeDeserializer(DateTimeFormatter.ofPattern(timeFormat)));
};
}
but not working,spring boot version 2.6.9,the project integrate spring cloud components like feing eureka and so on.but in my spring boot project without spring cloud coponents,above config working,
finally i config the httpmessageconverters to resolve this issue,but i did not know why above config not working?
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// jackson单独配置,参考:https://segmentfault.com/a/1190000041997183
converters.removeIf(converter -> converter instanceof MappingJackson2HttpMessageConverter);
converters.add(0, mappingJackson2HttpMessageConverter);
}
Both projects EnableWebMVC and extends WebMvcConfigurer to config interceptors
@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论