2015-10-29 4 views
8

Ich habe an der folgenden FrageFederdaten Rest vs Federdaten JPA

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

Es ist auf meine Bedürfnisse nicht ganz gerecht einen Blick hat. Meine DB ist auf MYSQL, ich wähle Spring-Data-JPA-Implementierung. Was sind all die zusätzlichen Vorteile, die REST mir geben kann, die ich nicht in einfachen Spring-Data-JPA finden werde? Zum Beispiel, wenn ich morgen entscheide, einen Cache s/w mein Geschäft und Datenbankmodul zu implementieren, in welchem ​​Fall würde ich weniger Code schreiben müssen? Was wäre leicht konfigurierbar? Was wäre flexibler und wie?

Auch, wenn ich sowohl REST und JPA in einer neuen Anwendung verwende, welche Designprinzipien kann ich brechen?

Ich freue mich auf die Antworten aus einer Architekturperspektive. Danke im Voraus.

Antwort

17

Grundsätzlich denke ich, Ihre Frage ist nicht ganz auf den Punkt. Ich denke du hast dich noch nicht komplett durch den Dschungel des Frühlingsprojekts hindurch gefunden - also versuche ich hier ein wenig Orientierung zu geben.

Spring-data-jpa ist der erste Weg, um mit JPA auf Daten zuzugreifen. Sie könnten spring-data-rest oben auf spring-data-jpa verwenden, um eine REST-API-Ebene ohne Code über Ihren Repositorys und Entitäten zu erstellen.

Und was Spring-Data-Rest für Sie tun kann, ist einfach unglaublich. Dies ist der schnellste Weg, eine REST-API über Ihrer JPA-Ebene zu erstellen. Und es ist auch sehr anpassbar. Aber ich denke, es hat seine Grenzen. Die größte Schwäche ist die enge Kopplung zwischen Entitäten und API. Normalerweise möchten Sie diese Schichten etwas entkoppeln. Aber es ist ein großartiges Stück Software. Wenn Sie schnell sein wollen und die minimale Menge an Code schreiben wollen, gehen Sie zum Frühjahrsdatenrest.

Eine Federalternative zu spring-data-rest verwendet spring MVC direkt, um eine eigene REST-API zu erstellen. Spring-Daten-jpa würde immer noch verwendet werden, um die Datenzugriffsschicht zu implementieren. Spring MVC ist sehr leistungsstark und wird von Feder-Daten-Rest unter der Haube verwendet. Dies gibt Ihnen die volle Kontrolle über die REST-Schicht.

Ich möchte auch spring HATEOAS erwähnen - es ist nur ein Modul oben auf Federmvc und es gibt Ihnen die Werkzeuge, um eine hypermedia-gesteuerte REST API zu erstellen - so können Sie für einen Reifegrad 3 der Richardson Maturity Model gehen - es ist auch von Feder-Daten-Rest intern verwendet.

+0

Dank Mathias +1 für Reifemodell, die ich nie neu existierte. Allerdings war ich auf der Suche nach ein wenig mehr Erklärung, wie eng gekoppelt ist, und wie ist Spring Data JPA lose gekoppelt. Ich suchte nach konkreten Beispielen, wenn Sie können ... –

+0

Hier ist ein sehr gutes Beispiel Anwendung https://github.com/olivergierke/spring-restbucks es enthält Beispiele für Feder-Daten-Rest enthält aber auch benutzerdefinierte Controller. –

Verwandte Themen