Возможно ли \ целесообразно провести рефакторинг приложения Spring MVC для использования другой инфраструктуры MVC? - PullRequest
1 голос
/ 04 декабря 2010

Я только начинаю использовать Spring и сейчас читаю Spring in Action , чтобы увеличить его.Ссылаясь на преимущества Spring по сравнению с EJB, в книге говорится:

«В Spring компонентам обычно не требуется реализовывать, расширять или использовать какие-либо классы или интерфейсы, специфичные для Spring,можно повторно использовать компоненты где угодно, даже при отсутствии Spring. "

Мое приложение в настоящее время использует Spring MVC.Я могу видеть, как вышеприведенное утверждение относится к бизнес-логике моего приложения, поскольку использование внедрения зависимостей полностью отделило наши компоненты от среды Spring.Но как насчет MVC, который в данном случае является веб-приложением?Мне любопытно, можно ли в будущем заменить Spring MVC в моем приложении на другую инфраструктуру MVC.

У меня двоякий вопрос:
1) Должен ли я считать веб-уровень тесно связанным с средой Spring и предположить, что изменение в моем MVC потребует создания нового веб-приложения для его поддержки?

2) Если нет, что будет связано с отделением веб-приложения от Spring?Я уже могу догадаться, что в отсутствие среды Spring все аннотации необходимо было бы удалить из контроллеров, а соответствующий код пришлось бы реорганизовать для поддержки новой инфраструктуры MVC.

Меня особенно интересует понимание тех, кто прошел через этот процесс.

1 Ответ

0 голосов
/ 06 декабря 2010

Хороший вопрос.Как вы правильно заметили, среда MVC имеет тенденцию связывать ваш код с Spring API гораздо более тесно, чем со слоями бизнес-логики.

Это в значительной степени неизбежно, хотя в гораздо меньшей степени, чем этос Spring 3, где аннотации интенсивно используются для сопоставления запросов к контроллерам и так далее.Связь параметров метода и возвращаемых значений с Spring API значительно уменьшена.Контроллеры могут выражать себя в терминах своей бизнес-логики.

Однако, чтобы получить какую-либо выразительную мощь от Spring MVC, обычно требуется некоторое использование его API.

Таким образом, чтобы ответить на ваш вопрос, хотя связь между Spring API и кодом вашего контроллера довольно минимальна, она есть и должна быть удалена.Однако, поскольку это очень неинвазивный API, в вашем коде должно быть немного компромиссов при разработке, что облегчает адаптацию к другой среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...