Добавление Spring Framework в существующее приложение JSP/EJB

У меня было существующее приложение, разработанное в JSP и EJB 2.1 года назад. Теперь я хочу улучшить приложение с новыми функциями. Есть ли способ использовать фреймворки Spring и Hibernate в одном и том же старом приложении для добавления новых функций, или мне нужно перейти к разработке нового приложения для использования последних фреймворков.

Заранее спасибо.


person ikvenu2000    schedule 20.12.2010    source источник


Ответы (3)


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

Если вы действительно хотите «модернизировать» приложение таким серьезным изменением (и у вас есть на то основания), лично я бы начал с совершенно нового проекта и просто импортировал в него то, что вы можете повторно использовать.

Приложения, которые со временем изменяются (практически все), становятся беспорядочными и накапливают много «мусора», чем старше они становятся. В конце концов, их невозможно поддерживать, будь то из-за того, что какой-то SME в приложении находит другую работу, или потому, что оно становится слишком запутанным и хрупким. Я не могу не думать, что выполнение чего-то подобного (добавление в существующее приложение) просто ускоряет процесс старения (насколько уверенно вы будете удалять «старые» вещи без желания оставить их «на всякий случай»?) , так гораздо лучше убираться в доме, пока есть возможность. Если только вы не говорите о небольшом приложении, которое находится в довольно хорошей форме, но, по моему опыту, это редко бывает.

person Manius    schedule 20.12.2010

Вы можете добавить Spring и Hibernate в существующее приложение (в конце концов, это всего лишь набор jar-файлов), хотя я бы не рекомендовал этого делать.

Прежде всего, EJB 2.1 и Hibernate будут конфликтовать, поскольку EJB 2.1 не имеет стандартного JPA и использует старый язык запросов EJB.

Для настойчивости я бы предложил использовать один или другой и не смешивать их. Если у вас есть значительный объем кода доступа к базе данных, написанного с использованием EJB 2.1, избегайте использования Hibernate в своем миксе. Это будет беспорядок. Если вы просто используете JDBC, то я думаю, что Hibernate может подойти.

Что касается Spring, поскольку это фреймворк, не так просто просто «добавить Spring» в ваше приложение. Весна огромна, и вы должны спросить себя, каковы будут преимущества. Какие части вы хотите использовать? Просто инъекция зависимостей? Уровни абстракции, которых нет в EJB 2.1? Нелегко.

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

person darioo    schedule 20.12.2010
comment
@ikvenu2000: кстати, почему ты не принял ни одного ответа? Вы находитесь на Stackoverflow более года. - person darioo; 21.12.2010

Спасибо за ответ.

Мое старое приложение (JSP+EJB 2.1) очень большое. Мы получили некоторые улучшения в системе. Теперь у нас есть 2 варианта.

  1. Замените старую систему и разработайте более модульную систему с механизмом правил и новейшими платформами, чтобы добавление новых функций/улучшений в будущем требовало меньше времени для реализации. Почти год уходит на то, чтобы перенести старую систему на новое приложение.

  2. Добавляйте улучшения в существующую систему, используя новейшие фреймворки, такие как Spring, Hibernate, Rules Engine и т. д., и медленно переносите старые вещи на новую технологическую платформу в зависимости от времени/бюджета. (Не уверен, что это будет работать или нет технически).

Теперь у вас есть больше информации, так что это лучший способ продолжить.

person ikvenu2000    schedule 21.12.2010