扩展 RepositoryRestMvcConfiguration 破坏了 Jackson LocalDateTime 序列化

2024-04-07

我正在尝试延长RepositoryRestMvcConfiguration覆盖uriToEntityConverter对于自定义的,但是这样做会导致 Jackson 无法序列化/反序列化LocalDateTime from 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) to @ConditionalOnBean(ExtendedRepositoryRestMvcConfiguration.class)。这使得它能够正确配置RestRepository与我重写的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展 RepositoryRestMvcConfiguration 破坏了 Jackson LocalDateTime 序列化 的相关文章

随机推荐