弹簧数据休息与弹簧数据jpa

Dip*_*rma 13 architecture spring-data-jpa spring-data-rest

我看过以下问题

使用Spring Data REST而不是Spring Data JPA有什么好处?

它不能满足我的需求.我的DB在MYSQL上,我选择了Spring-Data-JPA实现.REST可以给我带来的所有附加优势是什么?我在简单的Spring-Data-JPA中找不到这些优点?例如,如果明天,我决定实现一个缓存b/w我的业务和数据库模块,在这种情况下,我必须编写较少的代码?哪个很容易配置?哪个会更灵活,怎么样?

另外,如果我在新应用程序中同时使用REST和JPA,我会破坏哪些设计原则?

我期待从架构的角度来看答案.提前致谢.

Mat*_*nkt 32

基本上我认为你的问题不完全是重点.我想你还没有完全找到通过春季项目丛林的方式 - 所以我试着在这里给出一点方向.

Spring-data-jpa是使用JPA访问数据的春天方式.您可以在spring-data-jpa之上使用spring-data-rest来创建一个REST-API层,在您的存储库和实体之上没有代码.

春天数据休息可以为你做什么真是太神奇了.这是在JPA层之上创建REST API的最快方法.它也是高度可定制的.但我认为它有它的局限性.最重要的弱点是实体和API之间的紧密耦合.通常,您希望在这些图层之间进行一些解耦.但它是一个很棒的软件.如果您需要快速并希望编写最少量的代码,请转到弹簧数据休息.

spring-data-rest的一个替代方法是使用spring MVC直接创建一个REST API.Spring-data-jpa仍将用于实现数据访问层.Spring MVC非常强大,并且被引擎盖下的spring-data-rest使用.这使您可以完全控制REST层.

我还想提一下spring HATEOAS - 它只是spring mvc上的一个模块,它为你提供了创建超媒体驱动的REST API的工具 - 所以你可以获得Richardson成熟度模型的成熟度3级- 它也是由spring-data-rest内部使用.

  • 加上 1 提到 API 和数据库之间紧密耦合的缺点,以及提到 Spring HATEOAS。 (3认同)
  • 这是一个非常好的示例应用程序 https://github.com/olivergierke/spring-restbucks 它包含 spring-data-rest 的示例,但也包含自定义控制器。 (2认同)