Java 扩展RepositoryRestMvcConfiguration会中断Jackson LocalDateTime序列化

Java 扩展RepositoryRestMvcConfiguration会中断Jackson LocalDateTime序列化,java,spring,spring-boot,java-8,jackson,Java,Spring,Spring Boot,Java 8,Jackson,我试图扩展RepositoryRestMvcConfiguration以覆盖自定义的uriToEntityConverter,但是这样做会导致Jackson无法从字符串序列化/反序列化LocalDateTime。下面的代码显示了我的子类 我还尝试将jackson-datatype-jsr310添加到pom中,看看是否可以强制支持,但如果没有我的子类,它仍然可以工作,因此这基本上是一条死胡同 @Configuration @Import(RepositoryRestMvcConfiguration

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

我还尝试将
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

实际上,我在Spring中基于
RepositoryRestMvcAutoConfiguration
类,但将其从
@conditionalnmissingbean(RepositoryRestMvcConfiguration.class)
更改为
@ConditionalOnBean(ExtendedRepositoryRestMvcConfiguration.class)
。这使它能够正确地配置带有我的重写函数的
重新存储库。

你能发布你的代码吗?我不知道你是怎么解决的。明天我有笔记本电脑的时候我就得做了,但我会在Github上放一个示例项目。这里有一个示例项目给你,我还没有完全测试过它,但它展示了如何扩展以及需要从Spring中获取哪些内容谢谢你的代码。我可以使用它覆盖其中一个RepositoryRestMvcConfiguration方法。然而,对于较新版本的Spring库,类的签名发生了变化,我能够适应这种变化。