gpt4 book ai didi

java - 扩展 RepositoryRestMvcConfiguration 打破了 Jackson LocalDateTime 序列化

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:47 25 4
gpt4 key购买 nike

我正在尝试扩展 RepositoryRestMvcConfiguration 以覆盖自定义的 uriToEntityConverter,但是这样做会导致 Jackson 无法序列化/反序列化 LocalDateTime 来自 String。下面的代码显示了我的子类。

我还尝试将 jackson-datatype-jsr310 添加到 pom 中,看看我是否可以强制支持,但是如果没有我的子类,它仍然可以工作,所以这主要是一个死胡同。

@Configuration
@Import(RepositoryRestMvcConfiguration.class)
public class RepositoryRestMvcConfigurer extends RepositoryRestMvcConfiguration {

@Override
@ConfigurationProperties(prefix = "spring.data.rest")
public RepositoryRestConfiguration config() {
return super.config();
}


@Override
protected UriToEntityConverter uriToEntityConverter(ConversionService conversionService) {
return new OverriddenUriToEntityConverter(persistentEntities(), repositoryInvokerFactory(conversionService), repositories());
}
}

编辑:我已经通过注释我的 LocalDateTime 属性来指定要使用的序列化器和反序列化器来解决这个问题,但这感觉更像是一个巫术仪式而不是解决方案。

最佳答案

所以我最终自行解决了这个问题。要实际扩展您还需要:

  • 一个扩展RepositoryRestConfigurerAdapter的类
  • 返回前一个类并实现 AutoConfigureAfter 注释的类

我的方法基于 RepositoryRestMvcAutoConfiguration 类,实际上在 Spring 中,但将其从 @ConditionalOnMissingBean(RepositoryRestMvcConfiguration.class) 更改为 @ConditionalOnBean(ExtendedRepositoryRestMvcConfiguration.class)。这允许它使用我覆盖的函数正确配置 RestRepository

关于java - 扩展 RepositoryRestMvcConfiguration 打破了 Jackson LocalDateTime 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43494321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com