2011-12-20 17 views
5

Questa è davvero una domanda generale.Spring MVC Struts Mixing

Ho una webapp di e-commerce che ho creato da solo circa 4 anni fa. A quel tempo, ho preso la decisione di usare Struts come framework per mvc. Con il passare degli anni lavorando su altri progetti, ho iniziato ad apprezzare ea sentirmi molto più a mio agio con le funzionalità e la flessibilità offerte da Spring MVC.

Il livello di servizio è solido ed è costruito utilizzando la struttura a molla.

Mi piacerebbe refactoring il mio livello web corrente per ora utilizzare Spring MVC. Ma come ho già detto in precedenza, ho scritto l'app solo ed è più un progetto parallelo. Il punto è che non ho tempo, né voglio rischiare di buttar via e riprogettare completamente il web layer da zero.

Quindi sto chiedendo alla comunità su quale sarebbe la loro strategia per questo sforzo di refactoring?

Idealmente, mi piacerebbe affrontare pezzi alla volta, e alla fine mescolare le due tecnologie fino a quando non riesco a spegnere completamente Struts.

Tutte le nuove funzionalità per il mio sito dovrebbero essere sviluppate al meglio in Spring MVC.

La cosa buona è che le mie viste esistenti, che attualmente utilizzano le tile Apache, non dovrebbero cambiare molto, ad eccezione della rimozione delle librerie di tag strut e della loro sostituzione con Spring MVC.

Un requisito che vorrei mantenere è che l'URL non dovrebbe cambiare.

In altre parole, ActionServlet e DispatcherServlet dovrebbero mappare per separare i percorsi ma in qualche modo andare a implementazioni diverse.

Ad esempio, come posso dire che mysite.com/show-product esegue il mapping a un servlet di Spring Dispatcher, ma mysite.com/show-category esegue il mapping a un servlet di azioni Struts.

I tuoi pensieri sono apprezzati.

risposta

1

È possibile eseguirli entrambi nello stesso contenitore con mappatura appropriata.

Non capisco la domanda "dovrei convertire le classi di azioni in controller molla uno alla volta", in quale altro modo lo faresti?

Se una classe azione deve eseguire il mapping su un metodo di un controller, ha più a che fare con l'organizzazione dell'app esistente che su qualsiasi altra cosa, o almeno come si desidera organizzare l'app Spring.

+0

Sì, capisco il tuo punto sulla conversione di classi di azione alla primavera controllori, credo che in realtà non ha fatto senso ... Mi dispiace per la confusione ... Per quanto riguarda il loro esecuzione nello stesso contenitore, cosa succede se ho avuto il requisito che l'URL non dovrebbe cambiare ... Non c'è modo di aggirare giusto? In altre parole, ActionServlet e DispatcherServlet dovrebbero mappare per separare i percorsi giusto? Dovrei avere qualcosa di link http://www.mysite.com/show-product (struts) e www.mysite.com/2.0/show-product (spring mvc) giusto? –

+0

@RoyKachouh Depends; rende più problematico il fatto che è necessario disabilitare in modo selettivo l'elaborazione delle richieste S2. Questo è possibile da S2.1.mumble on. Potresti essere in grado di impreziosire un filtro personalizzato o usare anche un intercettore, anche se non sono sicuro di quale sarebbe la meccanica dell'intercettore senza pensarci un po '. –

+0

sei riuscito a trovare qualche soluzione per questo? – abhi