Простой вопрос от относительного новичка в Java:
в чем разница между JavaBean и EJB?
Простой вопрос от относительного новичка в Java:
в чем разница между JavaBean и EJB?
Java-компонент - это просто набор соглашений. EJB - это стандарт для бизнес-компонентов J2EE.
В частности, компонент Java:
Например, 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, несмотря на название, почти не имеет отношения к нему.
Взгляните на эту статью - JavaBeans против Enterprise JavaBeans
РЕЗЮМЕ:
JB
JavaBeans использует низкоуровневый подход к разработке многократно используемых программных компонентов, которые можно использовать для создания различных типов приложений Java (апплеты, автономные приложения и т. Д.) В любой области.
EJB
Enterprise JavaBeans использует высокоуровневый подход к построению распределенных систем. Это дает разработчику приложения возможность сконцентрироваться на программировании только бизнес-логики, устраняя при этом необходимость писать весь «внутренний» код, который требуется в любом корпоративном приложении.
JavaBeans могут быть видимыми или невидимыми во время выполнения. Например, визуальный компонент графического интерфейса пользователя может быть кнопкой, списком, графикой или диаграммой.
EJB - это невизуальный удаленный объект.
JavaBeans должны быть локальными для отдельного процесса и в первую очередь предназначены для работы на стороне клиента. Хотя можно разрабатывать компоненты JavaBean на стороне сервера, их гораздо проще разрабатывать, используя вместо этого спецификацию EJB.
EJB - это удаленно исполняемые компоненты или бизнес-объекты, которые можно развернуть только на сервере.
JavaBeans - это компонентная технология для создания общих компонентов Java, которые могут быть объединены в апплеты и приложения.
Несмотря на то, что EJB является компонентной технологией, он не расширяет и не расширяет исходную спецификацию JavaBean.
JavaBeans имеет внешний интерфейс, называемый интерфейсом свойств, который позволяет инструменту построения интерпретировать функциональность bean-компонента.
EJB-компоненты имеют дескриптор развертывания, который описывает их функциональность для внешнего инструмента построения или IDE.
JavaBeans может иметь BeanInfo
классы, редакторы свойств или настройщики.
EJB не имеют понятия о BeanInfo
классах, редакторах свойств или настройщиках и не предоставляют никакой дополнительной информации, кроме той, которая описана в дескрипторе развертывания.
JavaBeans не типизированы.
EJB бывают двух типов - сессионные компоненты и компоненты управления данными.
В JavaBeans нет явной поддержки транзакций.
EJB могут быть транзакционными, а серверы EJB обеспечивают транзакционную поддержку.
Компонентные мосты доступны для JavaBeans. Например, JavaBean также может быть развернут как элемент управления Activex.
EJB не может быть развернут как элемент управления ActiveX, поскольку элементы управления ActiveX предназначены для работы на рабочем столе, а EJB являются компонентами на стороне сервера. Однако совместимость CORBA-IIOP через отображение EJB-to-CORBA определяется OMG.
Мне было немного сложно понять принятый ответ, поэтому поискал в 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, оба представляют собой совершенно разные концепции.