Java 从RepositoryRestResource迁移到Controller+;存储库
我有一个简单的REST存储库,用Java 从RepositoryRestResource迁移到Controller+;存储库,java,rest,spring-boot,Java,Rest,Spring Boot,我有一个简单的REST存储库,用@RepositoryRestResource注释。这很好,并将我的MongoDB集合作为REST资源公开。但是,我希望在不同的项目中重用存储库,而不将其用作REST资源,而且我也不希望在该项目中具有这些依赖关系 因此,我从一个项目迁移到了三个项目: 存储库项目(1个存储库和1个域对象) 用户界面项目1 用户界面项目2 UI项目1和2都依赖于存储库项目。但现在我在迁移方面遇到了一些困难。我有一个很好的HATEOAS REST Web服务,我想保留它。为了让它发
@RepositoryRestResource
注释。这很好,并将我的MongoDB集合作为REST资源公开。但是,我希望在不同的项目中重用存储库,而不将其用作REST资源,而且我也不希望在该项目中具有这些依赖关系
因此,我从一个项目迁移到了三个项目:
- 存储库项目(1个存储库和1个域对象)
- 用户界面项目1
- 用户界面项目2
ResourceSupport
。我不想这样,因为它在一个没有REST支持的项目中
所以,我的问题是:我如何在UI项目1中创建一个控制器,它仍将提供完全的REST和完全的HATEOAS支持,而不让我的存储库项目依赖于REST支持?我想你应该自己创建此处所示的链接。好吧,这根本不起作用,因为我需要扩展ResourceSupport。这是不可能的,因为存储库项目不应该依赖于重启注释只是注释/元数据。。。如果您不包括SpringDataREST,那么您的存储库仍应作为常规存储库工作,但不能作为端点公开。。。将
春季日期休息设置为可选。如果您不希望这样,您的对象既没有也不应该扩展ResourceSupport
您的域对象不应该公开,您应该创建一个扩展ResourceSupport`的DTO。注释作为依赖项导入。如果不包含依赖项,如何编译代码?我当前的解决方案是将存储库放在存储库项目中,并在UI项目中扩展接口,并在其中添加注释。不确定这是否是最好的解决方案,但它很有效。你为什么还要编译。。。为什么它们不包括一个依赖项jar。。。后者是重用,第一个是复制粘贴。。。存储库项目应该提供一个repository.jar
,其他项目应该依赖于它。他们不应该重新编译代码。。。如果您这样做,并使其余的事情可选,它应该可以工作,因为注释是元数据。因此,基本上在您的存储库项目中执行依赖项,并使其成为可选的。