MVC Web personalizzato per un progetto Java EE legacy


Sono nel bel mezzo della creazione del mio framework web MVC personalizzato per un progetto. Questo progetto ha una base di codice molto vecchia in cui una pagina JSP invia direttamente un modulo a un altro JSP mentre i percorsi sono anche hardcoded. Ora è un grande progetto e mettere Struts o JSF richiederà molto tempo. Quindi il mio suggerimento è quello di costruire un piccolo framework MVC personalizzato e convertire molti flussi di pagine esistenti in esso e anche incoraggiarli a sviluppare nuove applicazioni utilizzando questo nuovo MVC quadro.

Vorrei rivedere questo con tutti voi se ha senso o dovremmo andare direttamente ai framework MVC standard.

La mia idea

1. Create one front controller servlet which will have URL pattern like /*.sm
2. This servlet reads one config file and creates a map whose key is requestedURI and value is the class name of the command bean.
3. upon intercepting any action request it reads the parameter map (request.getParameterMap()). This servlet refers the already built map, understand whose command bean is to be invoked? Creates an instance of this command bean.
4. pass the parameter map to this command bean and calls execute method.
5. if any exception is found, front controller servlet forwards the request to one global error page
6. if everything is fine, it then forwards the request to the expected URI (by removong .sm and replace it with .jsp)

Pensi che mi manchi qualcosa qui? So che posso renderlo più elegante fornendo la pagina di errore per pagina di richiesta nel file di configurazione o giù di lì, ma quelli possono essere fatti anche in seguito.

Author: Arjan Tijms, 2010-01-20

1 answers

Penso che finirai per reinventare la ruota che gira il tuo framework MVC. So che è allettante crearne di tuoi, dal momento che non dovrai abituarti a una nuova API ma crearne una tua e puoi adattarla più facilmente ai tuoi casi d'uso specifici. Ma dal momento che sembra essere un'applicazione molto longeva, dovrai considerare il fatto che anche il tuo framework (che ora potrebbe essere allo stato dell'arte) sarà legacy in un paio d'anni.

Ed ecco dove adattare uno dei framework popolari è utile. I creatori di un nuovo framework di solito vogliono che anche gli altri si spostino, quindi offriranno (o dovrebbero) una facile integrazione o opzioni di migrazione lontano dai framework che pensano di fare meglio (Spring è un buon esempio poiché, ad esempio, si integra perfettamente con le applicazioni Struts esistenti e puoi spostare gradualmente la tua applicazione senza mettere quella vecchia nel cestino). Inoltre, la maggior parte dei framework attuali sono molto versatili (che possono a volte essere un problema in quanto hanno bisogno di più tempo per entrare in esso) e può essere adattato a quasi tutti i casi d'uso.

Quindi consiglierei di rivedere attentamente le soluzioni esistenti (puoi imparare molto anche dalle loro decisioni di progettazione e dagli errori) e iniziare a crearne di tue solo se nessuna di esse corrisponde alle tue esigenze.

 2
Author: Daff, 2010-01-20 17:50:42