В чем разница между Spring, Struts, Hibernate, JavaServer Faces и Tapestry?


199

Могу ли я знать, в чем разница между: -

  1. весна
  2. Распорки
  3. Struts 2
  4. Hibernate
  5. JavaServer Faces
  6. JavaServer Pages
  7. гобелен

Эти технологии / рамки дополняют друг друга? Или они являются альтернативами друг другу (после того, как я использую один из них, мне не нужно использовать другой)?

Спасибо.

Ответы:


267
  1. Spring является контейнером IoC (по крайней мере, ядром Spring) и используется для связывания вещей с помощью внедрения зависимостей. Spring предоставляет дополнительные услуги, такие как управление транзакциями и бесшовную интеграцию различных других технологий.
  2. Struts - это основанная на действии структура представления (но не используйте ее для новой разработки).
  3. Struts 2 - это основанная на действии структура представления , версия 2 выше (созданная в результате слияния WebWork со Struts).
  4. Hibernate - это инструмент объектно-реляционного отображения, постоянный каркас .
  5. JavaServer Faces - это основанная на компонентах структура представления .
  6. JavaServer Pages - это технология представления, используемая всеми упомянутыми платформами представления для представления.
  7. Tapestry - еще одна основанная на компонентах структура представления .

Итак, подведем итог:

  • Struts 2, JSF, Tapestry (и Wicket, Spring MVC, Stripes) - это рамки представления . Если вы используете один из них, вы не используете другой.
  • Hibernate является средой персистентности и используется для сохранения объектов Java в реляционной базе данных.
  • Spring может использоваться, чтобы связать все это вместе и обеспечить декларативное управление транзакциями.

Я не хочу делать вещи более запутанными, но обратите внимание, что Java EE 6 предоставляет современный, стандартизированный и очень хороший эквивалент вышеуказанных платформ: JSF 2.0 и Facelets для презентации, JPA 2.0 для персистентности, Dependency Injection и т. Д. Для Новая разработка, это IMO серьезный вариант, Java EE 6 - отличный стек.

Смотрите также


2
Я хотел бы отметить, что в этом контексте сравнения некоторые люди также используют слово Spring для обозначения своей собственной инфраструктуры MVC (которая намного лучше, чем Struts IMO).
MetroidFan2002

Красиво объяснил, но все же это слишком технический. Я бы посоветовал вам объяснить это в терминах непрофессионала. В любом случае ссылки в конце сделали это.
нуб

Ответ действительно является хорошей отправной точкой, но его можно улучшить, объяснив основные представленные концепции (основанные на запросах против основанных на компонентах сред, контейнеры IoC, Презентация против постоянных сред ...) В нынешнем виде это требует много дополнительных гуглить, но это все же хороший ответ и отличная отправная точка! Upvote.
Ваутер

19

В общем-то...

Hibernate используется для обработки операций с базой данных. Существует широкий набор функций утилит базы данных, которые сокращают количество строк кода. Особенно вы должны прочитать @ аннотации спящего. Это структура ORM и уровень персистентности.

Spring предоставляет богатый набор рабочих механизмов на основе Injection. В настоящее время весна известна. Вы также должны прочитать о Spring AOP. Между Struts и Hibernate есть мост. В основном Spring предоставляет такие утилиты.

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

Кроме того, Tapestry - это другой фреймворк для Java. В котором вы должны обрабатывать только .tml(файл шаблона). Вы должны создать два основных файла для любого класса. Один - это класс JAVA, а другой - его шаблон. Оба имени одинаковы. Гобелен автоматически вызывает связанные классы.


7

Вы можете посмотреть обзор и рейтинг для себя здесь . Hibernate - это ORM, поэтому для создания веб-приложения можно использовать Struts + Hiberante или Spring + Hibernate. Различные веб-фреймворки и многие являются альтернативами друг другу.


4

Spring - это прикладная среда, которая работает с IOC (Inversion of Control).

Struts 2 - это платформа MVC для веб-приложений, которая занимается действиями.

Hibernate - это ORM (объектно-реляционное отображение), которое работает с постоянными данными.


3

Коротко,

Struts для Front-end разработки сайта

Hibernate для внутренней разработки сайта

Spring предназначен для полной разработки веб-сайта, в котором Spring MVC (Model-View-Controller) предназначен для Front-end. ORM, JDBC для доступа к данным / интеграции (бэкэнд). и т.д


2

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


2

Spring - это легковесный фреймворк с открытым исходным кодом, созданный Родом Джонсоном в 2003 году. Spring представляет собой законченную модульную фреймворк, фреймворк Spring можно использовать для всех реализаций уровней для приложения реального времени, а Spring можно использовать для разработки определенного уровня. приложения в реальном времени.

Struts - это платформа веб-приложений с открытым исходным кодом для разработки веб-приложений Java EE. Он использует и расширяет API сервлетов Java, чтобы побудить разработчиков принять архитектуру модель-представление-контроллер (MVC). Первоначально он был создан Крейгом МакКланаханом и передан Фонду Apache в мае 2000 года.

Ниже приведен сравнительный график различий между Spring и Strut Framework

введите описание изображения здесь


0

Гобеленовые страницы и компоненты представляют собой простые POJO (Plain Old Java Object), состоящие из геттеров и сеттеров для легкого доступа к функциям языка Java.


0

Разница между Spring , Struts и Hibernate заключается в следующем:

  1. Spring - это прикладная среда, а Struts и hibernate - нет.
  2. Spring и Hibernate легкие, а Struts 2 - нет.
  3. Spring и Hibernate имеют многоуровневую архитектуру, а Struts 2 - нет.
  4. Spring и Hibernate поддерживают слабую связь, а Struts 2 - нет.
  5. В Struts 2 и Hibernate есть библиотека тегов, а в Spring нет.
  6. Spring и Hibernate легко интегрируются с технологиями ORM, а Struts - нет.
  7. Struts 2 легко интегрируется с технологиями на стороне клиента, а Spring и Hibernate - нет.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.