Какова роль Spring в Struts + Spring + Hibernate?

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
10
0
2 774
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

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

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

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

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

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

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

Другие вопросы по теме