Какие технологии лучше всего подходят для моего приложения: Struts с Hibernate или Spring с Hibernate - PullRequest
5 голосов
/ 05 марта 2011

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

Ответы [ 3 ]

12 голосов
/ 05 марта 2011

Вот краткая разбивка стека J2EE, который вы можете использовать:

  1. Используйте Struts2 для вашего уровня контроллера

  2. Используйте Hibernate для вашегоуровень абстракции данных.Создайте сервисные интерфейсы для вашего DAO.Интерфейсы позволят вам использовать RMI некоторого типа для сервисов позже, если это необходимо, то есть эти сервисы могут работать на разных машинах, чем ваше веб-приложение.Пусть конкретные классы реализуют эти интерфейсы.Классы будут содержать бизнес-логику и проверку данных, а также обернут сеанс Hibernate.Сеанс Hibernate используется для чтения / записи в / из базы данных.Используйте аннотации Hibernate для ускорения реализации bean-компонентов Hibernate.

  3. Используйте Spring для создания экземпляров классов обслуживания и действий Struts2.Сконфигурируйте Spring для внедрения экземпляров сервиса в ваши действия Struts2.Это называется внедрение зависимостей .Ссылочные интерфейсы, а не классы в методах установки вашего действия Struts2 для DI.

  4. Используйте библиотеку тегов Struts2 или JSTL в вашем JSP, который будет вашим уровнем представления.

  5. Используйте Maven для ваших сборок и развертываний.

  6. Запустите Apache с mod_jk и используйте Tomcat в качестве сервлетаконтейнер.mod_jk запускается с процессом Apache и передает запросы в контейнер сервлета Tomcat, который находится в JVM.

  7. Если вашему приложению требуются возможности поиска, используйте SOLR , сервис REST, построенный поверх Lucene.

  8. Вместо использования Struts2 вы также можете взглянуть на Apache Wicket .

7 голосов
/ 05 марта 2011

У меня был тот же вопрос несколько дней назад, и по ссылкам, которые я использовал для принятия решения, я остановился на Spring MVC. Также проверьте Spring ROO , если вы начинаете заново.

  1. Выбор правильного веб-фреймворка
  2. Сравнение веб-фреймворков
  3. Какая платформа веб-приложений?

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

Надеюсь, это поможет.

0 голосов
/ 29 апреля 2014

Согласитесь с @Simian и добавьте некоторые комментарии и причины.

С технологической точки зрения вам следует использовать любую среду, в которой используются современные и зрелые технологии, такие как Struts 2, Spring MVC, Hibernate, JSF,и т. д.

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

Поэтому, поскольку вы знакомы со Struts 2 и Spring, я рекомендую:

1, использовать Struts 2 в качестве инфраструктуры MVC вашего проекта, но при необходимости использовать AJAX.Вы также можете разработать свои перехватчики, чтобы выполнить некоторые общие требования вашего проекта.(Или, если у вас есть время, вы можете изучить Spring MVC, так как он хорошо работает с Spring Framework и имеет лучшую поддержку AJAX и RESTful. JSF не рекомендуется, не потому что это не превосходная среда, но он использует наборполных различных концепций по сравнению со Struts 2 и Spring MVC, и неквалифицированному человеку трудно отлаживать)

2, просто используйте Spring jdbcTemplate в качестве уровня данных, используйте шаблон DAO для развязки.(Или вы можете изучить Hibernate или JPA в качестве своей платформы ORM, если у вас есть время.)

3, используйте Spring IoC для управления вашими объектами и интеграции со Struts 2 и Hibernate, а также для управления транзакциями с аннотациями Spring.

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