Я должен сказать, что нахожу модель Spring MVC на основе аннотаций удобной, но, исходя из мира Flex, я очень привык использовать шаблон проектирования Command. Это позволяет очень легко снизить уровни абстракции и достичь гибкости за счет расширения универсальной функциональности команд. Однако мне трудно вписать это в среду Spring.
В идеальном случае не должно быть контроллеров, кроме одного универсального класса HandleWebRequestCommand, который на основе параметров запроса (или переменных пути URL) выполняет другую команду (или цепочку команд). Другие команды будут отвечать за вызов удаленных сервисов, обработку извлечения / сохранения БД, манипулирование файлами и т. Д. Это уменьшит весь торт Controller / Service / Persistence до набора взаимозаменяемых и несвязанных команд.
Самая сложная часть, по-видимому, состоит в сопоставлении того, что происходит, и какие команды должны быть выполнены. Я вижу XML-подобный файл, очень подходящий для этой цели, где все команды объявлены. Кроме того, будут предоставлены их зависимости (каждая команда может иметь набор других команд, от которых она зависит (конечно, с интерфейсом)). Пока что я не предполагаю использование архитектуры, управляемой событиями, так как большинство команд будет по-прежнему выполняться в результате запроса HTTP, поэтому наиболее важными сопоставлениями будут сопоставления в HandleWebRequestCommand
Я в замешательстве. Пожалуйста помоги. Должен ли я продолжать эту Spring или начать разработку собственной архитектуры прямо на Java EE? Такая архитектура в порядке?