Разница между Javabean и EJB

Простой вопрос от относительного новичка в Java:

в чем разница между JavaBean и EJB?


person LRE    schedule 01.09.2009    source источник


Ответы (5)


Java-компонент - это просто набор соглашений. EJB - это стандарт для бизнес-компонентов J2EE.

В частности, компонент Java:

  • имеет общедоступный конструктор по умолчанию;
  • читаемые методы свойства предшествуют "get";
  • записываемые методы свойства предшествуют "set"; и
  • является сериализуемым.

Например, Java-компонент со свойством «маржа» будет выглядеть как минимум так:

public class MyBean implements Serializable {
  private int margin;

  public MyBean() { }
  public int getMargin() { return margin; }
  public void setMargin(int margin) { this.margin = margin; }
}

EJB, несмотря на название, почти не имеет отношения к нему.

person cletus    schedule 01.09.2009
comment
В JavaBeans есть кое-что еще (например, у вас может быть класс BeanInfo), но это широко используемая часть JavaBeans. - person Joachim Sauer; 01.09.2009
comment
Можете ли вы объяснить, что такое EJB в дополнение к тому, чем он не является? - person allyourcode; 17.03.2010
comment
вы можете улучшить раздел EJB, пожалуйста - person shareef; 18.01.2013
comment
EJB совершенно не связан? - person Koray Tugay; 16.04.2013

Взгляните на эту статью - JavaBeans против Enterprise JavaBeans

РЕЗЮМЕ:

JB

JavaBeans использует низкоуровневый подход к разработке многократно используемых программных компонентов, которые можно использовать для создания различных типов приложений Java (апплеты, автономные приложения и т. Д.) В любой области.

EJB

Enterprise JavaBeans использует высокоуровневый подход к построению распределенных систем. Это дает разработчику приложения возможность сконцентрироваться на программировании только бизнес-логики, устраняя при этом необходимость писать весь «внутренний» код, который требуется в любом корпоративном приложении.

person kv-prajapati    schedule 01.09.2009
comment
В этом ответе есть полезная информация, но не полная. - person Do Nhu Vy; 15.08.2014

  1. JavaBeans могут быть видимыми или невидимыми во время выполнения. Например, визуальный компонент графического интерфейса пользователя может быть кнопкой, списком, графикой или диаграммой.

    EJB - это невизуальный удаленный объект.

  2. JavaBeans должны быть локальными для отдельного процесса и в первую очередь предназначены для работы на стороне клиента. Хотя можно разрабатывать компоненты JavaBean на стороне сервера, их гораздо проще разрабатывать, используя вместо этого спецификацию EJB.

    EJB - это удаленно исполняемые компоненты или бизнес-объекты, которые можно развернуть только на сервере.

  3. JavaBeans - это компонентная технология для создания общих компонентов Java, которые могут быть объединены в апплеты и приложения.

    Несмотря на то, что EJB является компонентной технологией, он не расширяет и не расширяет исходную спецификацию JavaBean.

  4. JavaBeans имеет внешний интерфейс, называемый интерфейсом свойств, который позволяет инструменту построения интерпретировать функциональность bean-компонента.

    EJB-компоненты имеют дескриптор развертывания, который описывает их функциональность для внешнего инструмента построения или IDE.

  5. JavaBeans может иметь BeanInfo классы, редакторы свойств или настройщики.

    EJB не имеют понятия о BeanInfo классах, редакторах свойств или настройщиках и не предоставляют никакой дополнительной информации, кроме той, которая описана в дескрипторе развертывания.

  6. JavaBeans не типизированы.

    EJB бывают двух типов - сессионные компоненты и компоненты управления данными.

  7. В JavaBeans нет явной поддержки транзакций.

    EJB могут быть транзакционными, а серверы EJB обеспечивают транзакционную поддержку.

  8. Компонентные мосты доступны для JavaBeans. Например, JavaBean также может быть развернут как элемент управления Activex.

    EJB не может быть развернут как элемент управления ActiveX, поскольку элементы управления ActiveX предназначены для работы на рабочем столе, а EJB являются компонентами на стороне сервера. Однако совместимость CORBA-IIOP через отображение EJB-to-CORBA определяется OMG.

person Charu Jain    schedule 29.01.2012
comment
Что вы подразумеваете под сессионными компонентами и компонентами управления данными? - person Koray Tugay; 16.04.2013


Мне было немного сложно понять принятый ответ, поэтому поискал в Google еще несколько ссылок и получил ответ ниже.

Enterprise JavaBeans (EJB) 3.1 это < strong> спецификации J2EE, которые предписывают серверу (серверу приложений) развернуть фрагмент кода в контейнере EJB .

Технология EJB - это серверная компонентная архитектура для разработки и развертывания компонентных бизнес-приложений. Технология EJB обеспечивает быструю и упрощенную разработку распределенных, транзакционных, безопасных и переносимых приложений на основе технологии Java EE 6.

Простым языком:. Если вы создаете EJB и развертываете его на сервере, его можно вызвать удаленно (с помощью некоторой техники, например поиска JNDI с использованием RMI) или локально (т. Е. В приложении).

С другой стороны, Java beans - это простой простой Java-класс с геттерами и сеттерами, и этот класс сериализован, ниже приведен пример:

public class MyBean implements java.io.Serializable
{
   protected  int theValue;

   public MyBean()
   {
   }

   public void setMyValue(int newValue)
   {
      theValue = newValue;
   }

   public int getMyValue()
   {
      return theValue;
   }
}

Таким образом, это означает, что нет никакого сравнения между EJB и Java Beans, оба представляют собой совершенно разные концепции.

person Vishrant    schedule 01.02.2016