Какова роль Spring в Struts + Spring + Hibernate? - PullRequest
10 голосов
/ 02 октября 2008

Какую роль играет Spring в Struts + Spring + Hibernate?

Ответы [ 3 ]

16 голосов
/ 02 октября 2008

Spring предоставляет много разных «модулей», и разные программисты будут использовать разные части Spring.

Однако, как правило, в этом виде стека вы увидите, что Spring используется в качестве поставщика

  • Инверсия контейнера управления для внедрения зависимости
  • Абстракция к Hibernate под названием "HibernateTemplate"
  • Каркасные классы для упрощения аспектно-ориентированного программирования
  • Поддержка транзакций, часто "декларативно" через контейнер IoC и AOP.
4 голосов
/ 04 ноября 2008

Ну, Hibernate обрабатывает часть персистентности, JSP обрабатывает ваш графический интерфейс, Struts контролирует поток между страницами / действиями / и т. Д., А Spring может управлять всеми вашими компонентами, которые содержат основную бизнес-логику, вместо использования EJB. Кроме того, это может упростить кодирование ваших DAO Hibernate и управление транзакциями. Вместо того, чтобы кодировать свой локатор для получения некоторого EJB через JNDI и все такое, вы можете просто получить Spring ApplicationContext и запросить нужный вам компонент. Все бины, определенные в Spring, могут быть связаны между собой. Если вам нужно подключить один из ваших bean-компонентов к внешнему EJB через JNDI, вы даже можете сделать это без какого-либо кода (Spring предлагает прокси-объект JNDI, который получает указанную вами ссылку и возвращает ее как объект с указанным вами интерфейсом). Это может помочь вам упростить модульное тестирование всех этих компонентов и изменить конфигурацию, ничего не перекодируя; вы можете использовать один из Spring PlatformTransactionManager для управления источником данных или указать его JTA-менеджеру контейнера J2EE; определить свой собственный источник данных в пуле или использовать источник данных вашего контейнера, опубликованный через JNDI и т. д.

0 голосов
/ 16 апреля 2015

Хорошо, чтобы добавить;

(Представления и контроллеры) Struts за широкие возможности JSP с тегами Struts и функциями обработки веб-запросов

(Управление сервисами и приложениями) Spring для обработки ORM и сервисных уровней с превосходными инъекциями зависимостей и т. Д.

(ORM с независимостью от дБ) Hibernate для хорошо зарекомендовавшего себя ORM

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