【问题标题】:spring data rest vs spring data jpa春季数据休息与春季数据jpa
【发布时间】:2016-01-30 02:28:58
【问题描述】:

我看过下面的问题

What are the advantages of using Spring Data REST over Spring Data JPA?

它并不能完全满足我的需求。 我的数据库在 MYSQL 上,我选择了 Spring-Data-JPA 实现。 REST 能给我带来哪些我在简单的 Spring-Data-JPA 中找不到的附加优势? 例如,如果明天,我决定为我的业务和数据库模块实现一个黑白缓存,在这种情况下我必须编写更少的代码吗? 哪个很容易配置?哪个更灵活?如何灵活?

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

我期待从架构的角度得到答案。提前致谢。

【问题讨论】:

    标签: architecture spring-data-jpa spring-data-rest


    【解决方案1】:

    基本上我认为你的问题并不完全正确。我认为您还没有完全找到通过春季项目丛林的方式 - 所以我在这里尝试给出一些方向。

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

    spring-data-rest 可以为您做的事情真是太棒了。这是在 JPA 层之上创建 REST API 的最快方法。而且它也是高度可定制的。但我认为它有它的局限性。最显着的弱点是实体和 API 之间的紧密耦合。通常,您希望在这些层之间进行一些解耦。但它是一个很棒的软件。如果您需要速度快并且想编写最少的代码,请选择 spring data rest。

    spring-data-rest 的 Spring 替代方案是直接使用 spring MVC 自行创建 REST API。 Spring-data-jpa 仍将用于实现数据访问层。 Spring MVC 非常强大,并且在后台被 spring-data-rest 使用。这使您可以完全控制 REST 层。

    我还想提一下spring HATEOAS - 它只是 spring mvc 之上的一个模块,它为您提供了创建超媒体驱动的 REST API 的工具 - 因此您可以达到 Richardson Maturity Model 的成熟度级别 3 - 它也被 spring-data-rest 内部使用。

    【讨论】:

    • 感谢 Mathias +1 的成熟度模型,我从来没有新的存在过。但是,我一直在寻找有关它如何紧密耦合以及 Spring Data JPA 如何更松散耦合的更多解释。如果可以的话,我正在寻找具体的例子......
    • 这是一个非常好的示例应用程序github.com/olivergierke/spring-restbucks,它包含 spring-data-rest 的示例,但也包含自定义控制器。
    • 加 1 提到 API 和 db 之间紧密耦合的缺点,以及提到 Spring HATEOAS。
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多