OSGi vs Spring vs Struts vs EJB vs. Hibernate - полностью новый вопрос

Я не знаком с этими "рамками" "компонентов" вообще, но может ли кто-нибудь дать мне представление о том, каковы отношения между собой? В принципе, я хочу знать примерно о:

  • что и что представляют собой друг друга

  • что и что является дополнительной технологией (например, A в качестве рамки может использоваться с B как компонент)

  • Какие большие имена я пропустил выше списка, который у меня не был бы?

Может ли кто-нибудь дать мне вступительное слово на высоком уровне? Прочитав первые два ответа, может ли кто-нибудь дать больше объяснений о Spring и OSGi - они находятся на отдельном рынке (Enterprise vs. Mobile)?

Большое спасибо

Ответ 1

"vs" неверен, потому что многие из них могут использоваться вместе.

  • OSGi - это метод модуляции (а не каркас). Это дает вам возможность отделить ваше программное обеспечение от независимых модулей, которые могут сосуществовать в разных версиях, с другими модулями и без них.

  • Spring - легкий контейнер для инъекций зависимости. Он позволяет подключать ваши компоненты, определяя их зависимости и позволяя создавать и настраивать инфраструктуру, тем самым обеспечивая большую гибкость (здесь не может быть больше слов).

  • Struts - MVC, основанная на действии инфраструктура - используется в веб-уровне

  • EJB - бизнес-компоненты JavaEE - вы размещаете свою бизнес-логику в Enterprise JavaBeans, и у вас есть обработка транзакций, обработка состояния (JMS), таймеры и т.д. из коробки

  • Hibernate - решение ORM (объектно-реляционное сопоставление) - в основном это позволяет работать с объектами (oop), когда у вас есть реляционная база данных в качестве хранилища данных.

Ответ 2

Ну, вы могли бы попробовать что-нибудь прочитать о них?

  • Struts - это среда для создания веб-сайтов поверх технологии Java-сервлетов.
  • Spring - это "контейнер контейнера зависимостей" для управления конфигурацией программ Java (т.е. соединения ваших компонентов вместе).
  • Hibernate - это объектно-реляционная структура отображения для связывания реляционных баз данных (RDMS) и объектно-ориентированных программ.
  • EJB - входит в спецификацию Java Enterprise Edition. Суть их состояла в том, чтобы продать много дорогостоящих серверов приложений от Oracle, BEA и IBM. Они потерпели неудачу (ну, немного); следовательно, Spring
  • OSGi - это "контейнер" для управления приложением, состоящим из нескольких компонентов, где вы хотите поменять местами реализации модулей (или обновить их) без перезапуска системы. Он начал ориентироваться на рынок мобильных телефонов, и я никогда не сталкивался с ним "на предприятии".

Это в некоторой степени ортогональные технологии, т.е. они не являются взаимоисключающими. Spring теперь дополняет OSGi, например, и технология сервлетов является подмножеством Java EE.

Ответ 3

Я также предлагаю вам прочитать что-то о GWT. Ребята из Google приложили все усилия, объясняя всю связанную с Интернетом архитектуру.