Ho lavorato con Spring per un po 'ora per rendermi conto che non tutte le richieste in arrivo che ricevo nella mia app sono basate su HTTP. Alcune richieste sono basate su e-mail e richiedono risposte basate su e-mail, altre sono basate su socket (ricezione di notifiche quando un valore cambia nel mio negozio NOSQL). Tutti, anche se usano più o meno la stessa infrastruttura MVC.Decoupling Spring Controller MVC da HTTPServlet
Pertanto, ho pensato che forse rearchitecting l'applicazione, al fine di rimuovere l'accoppiamento tra i controller e l'infrastruttura HTTP aiuterà.
Il dispatcher non deve più richiamare direttamente i metodi del controller, ma piuttosto estrarre i parametri della richiesta e utilizzarli per creare un messaggio astratto (o evento), che quindi inserisce su un bus dei messaggi. D'altra parte, ogni controllore sottoscriverà le sue azioni (istanze della classe Action - un'implementazione del pattern Command) per diversi eventi.
Dato che sono abbastanza nuovo per Spring Integration, JMS e altre cose del genere, non ho idea di quale tecnologia di messaggistica scegliere. Inoltre, sono abbastanza sicuro che un'architettura come questa sia già stata sviluppata. Forse, potrei anche non essere sulla strada giusta.
Accetto tutti i tipi di suggerimenti su come procedere.