Подтвердить что ты не робот

Лучшие функции EJB 3

Сценарий

  • Вы разработали webapp с использованием EJB версии 3.
  • Система развертывается, доставляется и используется клиентом.

Если вам придется переписывать систему с нуля, вы бы снова использовали EJB?

Нет. Не отвечайте на этот вопрос, ответьте этот.

Да. Предоставьте одну важную, настоящую проблему, которую EJB решили на основе вашего личного опыта.

Пусть ответ содержит только одну проблему. Это позволит другим читателям проголосовать за лучшую функцию EJB.

4b9b3361

Ответ 1

Я думаю, это зависит от того, какую версию EJB вы говорите. Давайте обсудим только две релевантные версии (IMO).

EJB 2.1 все еще может использоваться некоторыми людьми в старой системе. Они действительно наиболее полезны в качестве абстракции RPC. Они также обеспечили рудиментарную систему ORM (Object-Relational Mapping). И, как вы упомянули, предоставляется поддержка транзакций. Поэтому, если вы строите систему, в которой хотите установить связь с удаленной системой, передавайте объектно-ориентированные данные и делайте это транзакционно, вы можете найти EJB, которые будут стоить усилий. В противном случае, я бы сказал, держитесь подальше.

EJB 3.0, однако, значительно улучшилось. Он имеет все функции предыдущей версии, но делает это более простым способом. Он также предоставляет довольно простую инфраструктуру Inversion-Of-Control, не похожую на Spring, и довольно приличную ORM в виде JPA (Java Persistence API.) Я использовал EJB 3.0 и действительно наслаждался им. Вы можете утверждать, что использование EJB 3.0 будет таким же, как и для Spring, плюс у него есть еще несколько продвинутых или корпоративных возможностей.

Ответ 2

Ну, это действительно зависит от того, о каких EJB мы говорим. Я бы сказал, что МДБ все еще могут быть полезны даже сейчас. Для объекта beans и сеанса beans вы можете найти лучший подход. Возможно, одна функция, которая мне еще нравится в EJB, - это масштабируемость. Используя параметр "remote", вы можете развернуть EJB на разные серверы, если это необходимо. Тем не менее, я не думаю, что это действительно необходимо, и я видел только один огромный проект, где это было действительно полезно.

Ответ 3

Основная причина использования платформы java ee по определению. вам нужна платформа, которая решает проблемы concurrency, доступности, управления транзакциями, обмена сообщениями и управления на полностью проверенной, совместимой и совместимой платформе. да, вы можете все это сделать, склеивая целую кучу библиотек и ударяя его поверх tomcat, но зачем тратить все это время на проверку и управление совместимостью и набором функций, когда вы можете писать на стандартную, полностью проверенную платформу. любой ee-контейнер ДОЛЖЕН передать tck или не может переносить мошенник Java EE.

вещи, которые разные люди поднимают о "легких", "типах" эйбов и т.д., излишни. если вам не нужен набор функций платформы или гарантия полной внутренней совместимости ваших библиотек с заархивированным доступом, то ejb (aka java ee platform) является излишним. но если вы действительно решаете проблему качества предприятия (см. первый абзац), то платформа ejb и java ee даст вам то, что вам нужно.

Ответ 4

Много работал в прошлом с EJB 2.1, рад оставить его.

Предложение EJB-значение остается верным для 3.0 и имеет хорошую легкую модель программирования. Управление транзакциями, concurrency, управление версиями данных, управление состоянием, это нетривиальные проблемы для правильной работы, а рамки Java EE продолжают выполнять отличную работу.

По общему признанию, я использую Hibernate и Seam для дальнейшего использования некоторых функций Java EE, поэтому для меня не совсем справедливо сказать, что EJB 3.0 сам по себе является меккой. Однако я нахожу слишком много разработчиков, бросающих пресловутого ребенка с ванной, когда они полностью отказываются от Java, и переходят к чему-то более модным, например Rails.

Seam обеспечивает отличную структуру клея, которая удерживает объем усилий программиста довольно низким. Также вы можете выбрать проект по проектам, когда EJB имеет смысл в сравнении с POJO, без необходимости менять свой стиль программирования.

Ответ 5

Одна вещь, которая укусила многих при использовании EJB или J2EE в целом, - это зависимость от сервера приложений, на котором вы запускаете EJB. Сервер приложений, как правило, поддерживается для определенного набора выпусков операционной системы и версий JVM. Отсутствие исходного кода для значительной части среды выполнения также может стать проблемой.

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

Таким образом, приложения-наблюдатели, с которыми я столкнулся, могут очень сильно злоупотреблять используемым в нем кодом и выполнять очень хорошо.

Ответ 6

Консолидация конфигурации.

Поведение EJB 3 по умолчанию чаще всего является желательным. Я думаю, что главной проблемой с EJB 2.1 была необходимость подробных конфигурационных файлов, новая конфигурация на основе аннотаций разрешает большую часть этой проблемы.