He estado trabajando con Spring por un tiempo para darme cuenta de que no todas las solicitudes entrantes que recibo en mi aplicación están basadas en HTTP. Algunas solicitudes están basadas en correo electrónico y necesitan respuestas basadas en correo electrónico, otras están basadas en un socket (recibir notificaciones cuando un valor cambia en mi tienda NOSQL). Todos ellos, aunque usan más o menos la misma infraestructura de MVC.Desacoplamiento Controlador de MVC de Spring de HTTPServlet
Por lo tanto, pensé que tal vez la modificación de la aplicación para eliminar el acoplamiento entre los controladores y la infraestructura HTTP ayudaría.
El despachador ya no debe llamar directamente a los métodos del controlador, sino extraer los parámetros de solicitud y usarlos para crear un mensaje abstracto (o evento), que luego coloca en un bus de mensajes. Por otro lado, cada controlador suscribirá sus acciones (instancias de la clase Action - una implementación del patrón Command) para diferentes eventos.
Como soy bastante nuevo en Spring Integration, JMS y otras cosas por el estilo, no tengo idea de qué tecnología de mensajería elegir. Además, estoy bastante seguro de que una arquitectura como esta ya se ha desarrollado. Quizás, quizás ni siquiera esté en el camino correcto.
Acepto todo tipo de sugerencias sobre cómo proceder.