Сложно ли преобразовать веб-приложение, созданное с помощью Jsp, Servlets & mySQL, в одно с Spring & Hibernate? - PullRequest
1 голос
/ 13 июля 2009

В настоящее время я работаю над созданием веб-приложения на Java. Я искал возможности использовать Spring и Hibernate, чтобы как следует познакомиться с ними, но я просто устаю читать и узнавать о них. Если я продолжу и буду строить его с JSP и сервлетами на сервере MySQL, на какие уровни повторного использования кода я буду смотреть? Я полагаю, что JSP и POJO будут более или менее идентичны, но как насчет остальной части кода?

Спасибо!

Ответы [ 4 ]

4 голосов
/ 13 июля 2009

Если вы строите с использованием сервлетов, DAO и JSP JDBC, то было бы довольно просто внедрить Spring в приложение позже:

  • Замените код сервлета на контроллеры Spring. Это может привести к тому, что Spring станет чем-то вроде дезактивации, поскольку они способны быть гораздо большим, чем просто замена сервлета, но это только начало.
  • В ваших DAO JDBC используйте классы поддержки JdbcDaoSupport и / или JdbcTemplate. Большая часть вашего кода JDBC останется неизменной, вы просто сможете удалить часть сантехники и позволить Spring перенести нагрузку.
  • Если ваше приложение использует формы веб-страниц, вы можете использовать форму taglib в Spring, если вы захотите, хотя это также потребует перестройки контроллеров. Вы можете просто оставить JSP такими, какие они есть, если хотите, полностью неизмененными.
  • Вы можете начать использовать свой контекст Spring, чтобы начать автоматическое подключение контроллеров и DAO вместе, уменьшая количество написанных вручную соединений.

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

Hibernate - это другой котелок с рыбой. Это большой и сложный, и немного страшный для начала. Я предлагаю сначала освоиться со Spring, поскольку Spring делает Hibernate немного более простым в обращении.

1 голос
/ 13 июля 2009

Скорее всего, вы можете повторно использовать JSP, предполагая, что вы используете JSTL, а не код scriplet. Вы добавите теги Spring.

Hibernate не на 100% необходим. Вы можете начать с Spring JDBC и перейти на Hibernate, только если считаете, что это может вам помочь. Я бы назвал это вторым шагом после того, как у вас будет работать функционал под Spring.

Spring довольно хорош для работы с другим кодом. Это не должно быть предложение «все или ничего».

Spring заставит вас создать интерфейс службы. У вас будет постоянный слой. Веб-MVC изолирует все проблемы представления. Вы будете использовать сервлет фронт-контроллера Spring для маршрутизации запросов к контроллерам. Контроллеры будут беспокоиться о проверке и привязке параметров HTTP к объектам и передаче их сервисам для выполнения запроса.

Вы не говорите о безопасности. Весенняя охрана будет бонусом.

0 голосов
/ 13 июля 2009

Рефакторинг - это всегда тяжелая работа .... Вы должны рассмотреть итеративный рефакторинг раздела (модули / логические единицы).

Весна не агрессивна. Поэтому его использование должно быть легким. Взгляните на «не повторяйте дао» от IBM. У них есть лучшие практики, которые помогут вам с чистой реализацией.

Если вы используете spring, вам стоит взглянуть на spring webmvc!

0 голосов
/ 13 июля 2009

Это зависит от

  • сколько у вас бизнес-логики, смешанной с логикой представления
  • если вы используете Pojo's

Если у вас отделена логика бизнеса и вы используете в основном pojo, то это проще.

Тогда это зависит от того, сколько весны и гибернации вы хотите использовать.

  • вы можете повторно использовать уже написанный sql, или вы можете положиться на hibernate, чтобы создать для вас sql
  • Вы можете использовать пружинные бобы
  • Вы можете использовать Spring Web MVC

Для универсального подхода вы захотите реорганизовать свое приложение на уровне слоев:

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