2015-04-17 26 views
14

C'è qualche compromesso tra l'uso di Spring mvc e il contenitore del servlet Jersey Rest? Jersey segue lo standard Jax RS. Quando imparo Spring mvc, più o meno sembra uguale. In alcune applicazioni ho trovato persone che usano servlet a molla in jersey. Se la molla (servlet dispatcher con mappatura del gestore) può fare tutto il lavoro, allora qual è il bisogno di Jersey qui? Grazie in anticipo.Differenza tra molla mvc e Jersey

risposta

12

Spring MVC è un framework Web completo di frontend che include il supporto per HTML e altri modelli, oltre ad altre funzionalità, oltre alle funzionalità REST JSON/XML fornite da Jersey.

Spring MVC era al primo posto e ha il suo modo di fare le cose. JAX-RS è stato definito come standard per i gestori REST basati su annotazioni e Jersey è un'implementazione di tale standard. (È molto simile a @Autowired e CDI.)

Personalmente preferisco Spring MVC perché costruisco su uno stack Spring e posso riutilizzare il codice tra i miei gestori JSON e HTML, ma i componenti destinati a essere distribuiti come parte di uno stesso cliente il sistema potrebbe essere più flessibile se si utilizza JAX-RS.

6

Personalmente penso che sia solo una questione di preferenza e di quale prospettiva si sta guardando da. Continuerei a dire che quando si effettua questa considerazione, quando si costruiscono livelli diversi, si può dire che esiste un ulteriore "livello REST", in aggiunta ai livelli di business, persistenza, ecc. Proprio come le implementazioni di persistenza possono essere scambiate, così possono implementare REST.

Detto questo, sebbene le classi endpoint/controller/risorsa siano simili nell'implementazione, altre funzionalità (del livello REST) ​​sono implementate completamente diverse. Guardandolo da una prospettiva di primavera, penso che quelli a proprio agio sceglierebbero di mantenere MVC come implementazione REST, per la sua familiarità

Guardandolo da una prospettiva di Jersey, questo è dove penso che la maggior parte della decisione di integrazione arriva in; scegliendo come implementare i livelli sotto il livello REST. Per quella primavera sarebbe una scelta praticabile, in quanto ha un ricco sistema eco. Ma essendo un utente di Jersey, il framework di Jersey (per un'implementazione REST) ​​sembra molto più intuitivo, ma è completamente sbagliato. Per utilizzare Spring e Jersey insieme, è possibile dare un'occhiata a Combining Spring project and Jersey

Per quanto riguarda l'implementazione di JAX-RS, non vedo che sia un fattore decisivo nella scelta dell'implementazione REST, quando si guarda da una prospettiva di primavera. Non vedo davvero che sia molto di un fattore. In un ambiente Java EE, è sicuro di poter sostituire le implementazioni con pochi problemi, ma quando l'integrazione di Spring è coinvolta, non è così facile, poiché ci sono moduli di integrazione e configurazioni coinvolte nell'integrazione di ogni diversa implementazione JAX-RS con Spring.

Problemi correlati