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

Какую роль выполняет Spring в Struts + Spring + Hibernate?

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

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

(ORM с независимостью db) Спящий режим для проверенного ORM