Как различные Java-фреймворки для дизайна веб-приложений связаны между собой - PullRequest
2 голосов
/ 29 апреля 2009

Я новичок в разработке веб-приложений на Java. Пока что все, что я использовал, это простые старые сервлеты, jdbc и jsps. Я начал читать обо всех фреймворках, и я полностью запутался и потерян в рое фреймворков? Итак, вот несколько вопросов, которые у меня есть:

  1. Являются ли EJB3 и Hibernate конкурирующими технологиями или могут использоваться вместе.
  2. Если я использовал JBoss Seam, мне все равно нужно использовать Hibernate для своих нужд ORM или Seam + EJB3 позаботится об этом?
  3. Какие типичные фреймворки мне нужно будет изучить, если мне придется разрабатывать веб-приложение с использованием JBoss Seam? Это некоторые или все из следующего: Шов (конечно) JSF EJB3 зимовать Пружинная инверсия контрольного контейнера
  4. Можно ли использовать JBoss Seam для разработки приложения на портале JBoss?

спасибо Викас

Ответы [ 5 ]

2 голосов
/ 29 апреля 2009

1. Являются ли EJB3 и Hibernate конкурирующими технологиями или могут использоваться вместе.

У них есть конкурирующие API (JPA отличается от API Hibernate), но Hibernate может быть подключен под JPA, только не ожидайте взаимодействия с вещами, закодированными для Hibernate - в частности, jBPM (3.2) не полностью взаимодействует даже под Seam (2.1) 0,1).

2. Если я использовал JBoss Seam, нужно ли мне по-прежнему использовать Hibernate для своих нужд ORM или Seam + EJB3 позаботится об этом?

Как я понимаю, вы можете сделать либо.

3. Какие типичные фреймворки мне нужно будет изучить, если мне придется разрабатывать веб-приложение с использованием JBoss Seam? Является ли это некоторым или всем из следующего: Шов (конечно) JSF EJB3 Hibernate Spring Инверсия контейнера управления

JSF - важно, чтобы Seam действительно имел смысл на самом деле - я рекомендую сосредоточиться на Facelets в качестве основного способа создания страниц JSF. Синтаксис хороший и знакомый - обычный старый XHTML, квалифицированный для пространства имен, с компонентами на стороне сервера, расположенными в отдельных пространствах имен. Совершенно тривиально и чисто, в отличие от всего, что я пробовал.

EJB3 - нравится вам или нет, зависит от вас. Пройдя по этому пути, вы попадаете в Java EE, что все еще немного пугает меня, хотя и имеет много преимуществ.

Hibernate - если хотите, до вас. Менеджеры объектов JPA предоставляют альтернативу.

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

Я обнаружил, что Seam + JSF (facelets) + Hibernate + Spring - очень хорошая комбинация для создания пользовательских интерфейсов через jBPM, а также в другом проекте для доставки контентных страниц, хотя для Seam это совсем не то.

  1. Можно ли использовать JBoss Seam для разработки приложения на портале JBoss?

Извините, я не могу вам помочь.

0 голосов
/ 13 июля 2009

По вопросу № 4.

JBoss Seam можно использовать внутри портала JBoss, если используется мост.

В настоящее время существует проект JBoss Portlet Bridge , который находится на стадии CR и приближается к выпуску.

0 голосов
/ 29 апреля 2009
  1. EJB3 и Hibernate дополняют друг друга. EJB3 определяет JPA (API), и Hibernate может использоваться как поставщик сохраняемости для JPA.

  2. Вам по-прежнему необходимо использовать одного из поставщиков постоянства, который может быть Hibernate, OpenJPA и т. Д.

  3. JSF и EJB3.

  4. Относительно разработки Seam и Portal: лучше спросить, насколько хорошо JSF и Portal работают вместе?

Конечно, они работают вместе - вот урок: Разработка портлетов с использованием JSF, Ajax и Seam

0 голосов
/ 29 апреля 2009

JBoss Seam - это мета-фреймворк, который объединяет EJB3 и JSF-фреймворки и объединяет их в форму внедрения зависимостей. Как технология J2EE, вы обычно развертываете ее на сервере приложений - вот где вступает JBoss Portal.

JBoss Portal - коммерческое предложение от организации JBoss. Он объединяет различные компоненты J2EE в форме «модулей». Эти компоненты будут включать EJB3, JSF и Сервер приложений JBoss .

Проверьте эту ссылку и прокрутите вниз, чтобы узнать, где соединяются шов и портал. На сайте Портала описаны модули, которые он предоставляет (я полагаю, что к ним привязана ценовая модель), Поддержка шва обеспечивается модулем портлета .

0 голосов
/ 29 апреля 2009
  1. Да и нет. EJB3 (или, точнее, JPA) - это спецификация для объявления сопоставлений ИЛИ посредством аннотаций Java5 и для интерфейсов для их запроса. Вам все еще нужна реализация. Аннотации Hibernate были бы реализацией сопоставления, а Hibernate EntityManager - реализация интерфейсов запросов - они используют «основной» Hibernate для своей работы. Вы должны быть в состоянии смешивать и сочетать их - можно использовать аннотации JPA и использовать такие API Hibernate, как HQL и Criteria.
  2. Зависит, в основном от сервера приложений. Полнофункциональный сервер приложений может работать с JPA, и вы можете настроить его через web.xml и консоль приложения. Конечно, это исключает смешивать и сочетать. Тем не менее, вы все равно можете выполнять свои собственные действия независимо от сервера приложений, получая программный доступ к API запросов / используя Spring / что угодно.
  3. JSF является обязательным условием для использования Seam. Что касается EJB3 / JPA против Hibernate - дело предпочтений. Вам не нужно много знать о Hibernate, чтобы использовать его в качестве реализации JPA. JPA основывается на API-интерфейсах Hibernate, поэтому, скорее всего, разница в любом случае будет довольно небольшой. Spring не является строго необходимым, JBoss старается изо всех сил получить часть своей доли на рынке с помощью Web Beans. Некоторые функции Seam частично совпадают с некоторыми функциями Spring. Spring очень модульный и охватывает много, так что вы должны иметь возможность выбирать нужные функции Spring.
  4. Не знал бы.
...