Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从RepositoryRestResource迁移到Controller+;存储库_Java_Rest_Spring Boot - Fatal编程技术网

Java 从RepositoryRestResource迁移到Controller+;存储库

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服务,我想保留它。为了让它发

我有一个简单的REST存储库,用
@RepositoryRestResource
注释。这很好,并将我的MongoDB集合作为REST资源公开。但是,我希望在不同的项目中重用存储库,而不将其用作REST资源,而且我也不希望在该项目中具有这些依赖关系

因此,我从一个项目迁移到了三个项目:

  • 存储库项目(1个存储库和1个域对象)
  • 用户界面项目1
  • 用户界面项目2
UI项目1和2都依赖于存储库项目。但现在我在迁移方面遇到了一些困难。我有一个很好的HATEOAS REST Web服务,我想保留它。为了让它发挥作用,我必须让我的域对象扩展
ResourceSupport
。我不想这样,因为它在一个没有REST支持的项目中


所以,我的问题是:我如何在UI项目1中创建一个控制器,它仍将提供完全的REST和完全的HATEOAS支持,而不让我的存储库项目依赖于REST支持?

我想你应该自己创建此处所示的链接。

好吧,这根本不起作用,因为我需要扩展ResourceSupport。这是不可能的,因为存储库项目不应该依赖于重启注释只是注释/元数据。。。如果您不包括SpringDataREST,那么您的存储库仍应作为常规存储库工作,但不能作为端点公开。。。将
春季日期休息设置为可选。如果您不希望这样,您的对象既没有也不应该扩展
ResourceSupport
您的域对象不应该公开,您应该创建一个扩展ResourceSupport`的DTO。注释作为依赖项导入。如果不包含依赖项,如何编译代码?我当前的解决方案是将存储库放在存储库项目中,并在UI项目中扩展接口,并在其中添加注释。不确定这是否是最好的解决方案,但它很有效。你为什么还要编译。。。为什么它们不包括一个依赖项jar。。。后者是重用,第一个是复制粘贴。。。存储库项目应该提供一个
repository.jar
,其他项目应该依赖于它。他们不应该重新编译代码。。。如果您这样做,并使其余的事情可选,它应该可以工作,因为注释是元数据。因此,基本上在您的存储库项目中执行依赖项,并使其成为可选的。