Отделение Spring MVC Controller от HTTPServlet

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

Поэтому я подумал, что, возможно, поможет изменение архитектуры приложения, чтобы устранить связь между контроллерами и инфраструктурой HTTP.

Диспетчер больше не должен вызывать методы контроллера напрямую, а извлекать параметры запроса и использовать их для создания абстрактного сообщения (или события), которое затем помещается в шину сообщений. С другой стороны, каждый контроллер будет подписывать свои действия (экземпляры класса Action - реализация шаблона Command) на разные события.

Поскольку я новичок в Spring Integration, JMS и других подобных вещах, я понятия не имею, какую технологию обмена сообщениями выбрать. Кроме того, я почти уверен, что подобная архитектура уже разработана. Возможно, я даже не на правильном пути.

Я принимаю всевозможные предложения относительно дальнейших действий.

6
задан user802232 18 December 2011 в 15:16
поделиться