Различия между реализациями Java EE 6 CDI - программирование
Подтвердить что ты не робот

Различия между реализациями Java EE 6 CDI

Я посмотрел справочную версию JBoss Weld Reference для контекстов и зависимостей JSR-299, и я хотел знать, как другие реализации CDI сравниваются друг с другом. В частности, я знаю о Weld, Resin CanDI (от Caucho) и Apache OpenWebBeans.

4b9b3361

Ответ 1

Быстрый обзор главных героев:

  • Weld RI (имеется только один RI), версия 1.0 отсутствует, он встроен в GlassFish v3 и предстоящий JBoss AS EE 6, но также может использоваться с другие контейнеры (с некоторыми ограничениями).
  • OpenWebBeans все еще находится в разработке, версия 1.0.0 запланирована на конец апреля 2010 года.
  • Caucho CanDI, похоже, привязан к Resin (я могу быть неправ здесь, но я не мог найти четких доказательств обратного на их веб-сайте, что плохо в любом случае).

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

Если вы ищете сравнение производительности (что еще вы хотели бы сравнить?), я не думаю, что вы сейчас найдете такой показатель.

В любом случае, если вы хотите использовать CDI, просто сделайте это.

Ответ 2

На самом деле я использую OpenWebBeans в действительно производственном проекте правительства уже вместе с полномасштабной средой веб-профиля EE6. Но я не скажу вам, где, поэтому он не может получить slashdotted;) (Кстати, будьте готовы, что большинство частей EE-6, например, например, интеграция EL-2.2 в настоящее время требует большого количества небольших исправлений и настроек для запуска - но это выглядит многообещающе!)

Фактически сообщества Weld и OpenWebBeans довольно часто общаются друг с другом, поэтому всякий раз, когда мы сталкиваемся с чем-то непонятным в спецификации, мы оба пытаемся обсудить ситуацию. И так как вовлеченные ребята из Caucho Ferg and Reza оба просто говорят, что боги java, я уверен, их реализация действительно хороша;)

Что касается OpenWebBeans: в настоящее время мы готовим выпуск Milestone4, который должен выйти на следующей неделе. У openwebbeans-impl aka 'owb-core' почти нет зависимостей вообще! Все "тяжелые" зависимости обрабатываются плагинами, которые автоматически попадают из пути к классам, если они доступны. Они охватывают определенные части спецификации, когда дело доходит до взаимодействия с другими частями ЭЭ. Есть, например, плагины, такие как openwebbeans-jsf, openwebbeans-jms, openwebbeans-resource (обработка ресурсов EE + JPA) и т.д.

Btw: не пропустите замечательный простой способ написать свой собственный портативный компьютер! Расширения CDI.

Чтобы получить первое представление, вы можете посмотреть на Seam3: anonsvn.jboss.org/repos/seam/modules/ и, конечно же, Apache MyFaces CODI: github.com/struberg/myfaces-ext-cdi (скоро перейдут в Apache MyFaces SVN)

LieGrue, Strub

Ответ 3

В настоящее время они не сравниваются. Я сомневаюсь, что любой из них был использован в производстве, они слишком свежи.

  • Предполагается, что Weld является эталонной реализацией, поскольку он разрабатывается с тесным сотрудничеством со спецификацией Lead - Gavin King (от JBoss).
  • лично мне нравится OpenWebBeans больше благодаря наличию более чистого кода, но это не важно при его использовании.

Ответ 4

Пока спецификация CDI касается, я надеюсь, что никакой функциональной разницы между RI не будет. Проверьте эту статью: Понимание Java EE 6 и CDI

Ответ 5

Я бы сказал обратное;) Но оба проекта - отличные инструменты и поставляются с различными серверами приложений. Ключ состоит в том, что они следуют спецификации Java EE и обеспечивают невероятную мощность в гибкости и повторном использовании программ.