Я некоторое время работал с Spring, чтобы понять, что не все входящие запросы, которые я получаю в моем приложении, основаны на HTTP. Некоторые запросы основаны на электронной почте и требуют ответов на основе электронной почты, другие - на основе сокетов (получение уведомлений при изменении значения в моем хранилище NOSQL). Все они, хотя и используют более или менее одинаковую инфраструктуру MVC.
Поэтому я подумал, что, возможно, поможет реструктуризация приложения, чтобы удалить связь между контроллерами и инфраструктурой HTTP.
Диспетчер больше не должен напрямую вызывать методы контроллера, а должен извлекать параметры запроса и использовать их для создания абстрактного сообщения (или события), которое он затем помещает в шину сообщений. С другой стороны, каждый контроллер будет подписывать свои действия (экземпляры класса Action - реализация шаблона Command) на разные события.
Поскольку я довольно новичок в Spring Integration, JMS и других подобных вещах, я понятия не имею, какую технологию обмена сообщениями выбрать. Кроме того, я уверен, что подобная архитектура уже разработана. Возможно, я даже не на правильном пути.
Я принимаю всевозможные предложения о том, как поступить.