2015-10-29 17 views
8

ho avuto uno sguardo alla seguente domandaprimavera vs APP dati di primavera

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

Non riesco però a soddisfare le mie esigenze. Il mio DB è su MYSQL, ho scelto l'implementazione Spring-Data-JPA. Quali sono tutti i vantaggi aggiunti che REST può darmi, che non troverò nel semplice Spring-Data-JPA? Ad esempio se domani, deciderò di implementare una cache b/n della mia azienda e del modulo Database, nel qual caso dovrei scrivere un codice minore? Quale sarebbe facilmente configurabile? Quale sarebbe più flessibile e come?

Inoltre, se utilizzo sia REST che JPA in una nuova applicazione, quali principi di progettazione si interrompono?

Non vedo l'ora di ricevere le risposte dal punto di vista dell'architettura. Grazie in anticipo.

risposta

17

Fondamentalmente penso che la tua domanda non sia completamente al punto. Penso che tu non abbia completamente trovato la tua strada nella giungla del progetto primaverile - quindi cerco di dare un po 'di orientamento qui.

Spring-data-jpa è il modo più semplice per accedere ai dati tramite JPA. È possibile utilizzare spring-data-rest su spring-data-jpa per creare un livello REST-API senza codice sopra i repository e le entità.

E ciò che il riposo di dati primaverili può fare per te è semplicemente fantastico. È il modo più veloce per creare un'API REST sopra il tuo livello JPA. Ed è anche altamente personalizzabile. Ma penso che abbia i suoi limiti. La debolezza più significativa è lo stretto accoppiamento tra entità e API. Di solito ti piacerebbe avere un po 'di disaccoppiamento tra questi livelli. Ma è un ottimo software. Se hai bisogno di essere veloce e vuoi scrivere la quantità minima di codice per il resto dei dati primaverili.

Un'alternativa a molla per il blocco dati a molla utilizza spring MVC direttamente per creare un'API REST da soli. Spring-data-jpa sarebbe ancora utilizzato per implementare il livello di accesso ai dati. Spring MVC è molto potente e viene utilizzato da molla-dati-riposo sotto il cofano. Questo ti dà il pieno controllo del livello REST.

Voglio anche menzionare spring HATEOAS - è solo un modulo in cima al mvc di primavera e ti dà gli strumenti per creare un'API REST gestita da hypermedia - così puoi andare per un livello di maturità 3 di Richardson Maturity Model - è utilizzato anche da molla-dati-riposare internamente.

+0

Grazie Mathias +1 per Maturity Model, di cui non sono mai esistito nuovi. Tuttavia, stavo cercando un po 'di spiegazioni su come è strettamente accoppiato, e in che modo Spring Data JPA è più liberamente accoppiato. Stavo cercando esempi specifici, se è possibile ... –

+0

Ecco un esempio di applicazione molto buona https://github.com/olivergierke/spring-restbucks contiene esempi per spring-data-rest, ma contiene anche controller personalizzati. –

Problemi correlati