是否可以使用自定义(spring data)存储库导出REST资源?
它是如何工作的?
我找不到任何示例。我也没有发现它是不可能的。
是否可以使用自定义(spring data)存储库导出REST资源?
它是如何工作的?
我找不到任何示例。我也没有发现它是不可能的。
RepositoryFactoryBeanSupport
),构建自己的PersistentEntityInformation
并手动处理自定义数据存储类型的CRUD操作。更新:请查看文档中的此章节:向所有存储库添加自定义行为。思路是使用@EnableJpaRepositories(repositoryBaseClass = MyRepositoryImpl.class)
替换默认的存储特定实现。
KeyValueOperations
bean,然后将其指定给@EnableMapRepositories
。可以以spring-data-redis源代码作为实现示例。这是最简单的解决方案。CustomEntityInformation
、CustomEntityMappingContext
、CustomPersistentEntity
、CustomPersistentProperty
。@EnableCustomRepositories
、CustomRepositoriesRegistrar
、CustomRepositoryConfigurationExtension
、CustomRepositoryFactory
、CustomRepositoryFactoryBean
。CustomRepository
(基础接口)、CustomRepositoryImpl
(默认实现)。而且还需要一些额外的代码来支持Spring Data Rest,例如,搜索资源不会自动公开,因此我们需要手动构建搜索资源。然后您可能希望在其上添加查询支持等。
总之,答案是肯定的,可以通过实现自己的存储SPI来实现,但并不容易。首先应该寻找其他解决方案,包括:
Spring data rest会检测并不导出存储库上的自定义实现。请参见此处的代码库和此处的原因。
如果您想公开自定义存储库实现,则需要使用自定义控制器。有关如何适当使用自定义控制器的文档将在Spring Data Rest 2.4中发布。