Компоненты-сущности. Введение в компоненты-сущности. Крупные деловые объекты. Рост популярности компонентов-сущностей, страница 6

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

Местный интерфейс

Каждый компонент-сущность должен иметь местный (Ноте) интерфейс. Это интерфейс, через который клиент вызывает базовые методы жизненного цикла EJB. На этапе выполнения контейнер EJB создает только одну копию этого интерфейса на каждый развернутый компонент-сущность. С помощью местного интерфейса можно создавать, находить и разрушать все экземпляры определенного EJB.

Местный интерфейс компонента-сущности поддерживает методы четырех разных типов: методы создания, поиска, удаления и местные методы. Последний из этих типов применяется только b J2EE 1.3.

Методы создания

Методы создания служат для создания экземпляра компонента-сущности. Интерфейс может содержать любое число таких методов, включая нуль. Метод создания всегда должен возвращать тип удаленного интерфейса компонента-сущности. Контейнер EJB также может создавать экземпляры компонента-сущности автоматически в ответ на события, происходящие в базе данных. Благодаря этому свойству можно формировать компоненты-сущности без методов создания.

Имя метода создания должно быть create<METOД>, где <МЕТОД> — любое имя или ничего, a create— префикс. Разрешается любое количество любых параметров.

Методы поиска

Методы поиска применяются для отыскания экземпляра компонента-сущности через местный интерфейс. По крайней мере один такой метод с сигнатурой findByPrimaryKey(primaryKey) обязательно должен присутствовать. Возвращаемый тип метода поиска — либо удаленный интерфейс компонента-сущности (его должен возвращать обязательный метод), либо коллекция удаленных интерфейсов нескольких экземпляров компонента.

Имя метода поиска должно быть <МЕТОД>, где <МЕТОД> — любое имя или ничего, a find— префикс. Разрешается любое количество любых параметров. Код метода поиска не создается разработчиком непосредственно, а генерируется автоматически на этапе развертывания при выполнении соответствующей команды EJB QL.

Методы удаления

Методы удаления применяются клиентами для уничтожения ссылок на компоненты-сущности. Необходимые методы удаления уже определены в базовых интерфейсах EJB, и заново определять их не нужно. Эти методы, естественно, носят имя remove.

Местные методы

Местные методы (home methods) задают логику приложения, не относящуюся к какому-то определенному экземпляру компонента cущности. Впервые местные методы появились в J2EE 1.3.

Для местных методов можно использовать любые имена, конечно, кроме тех, что начинаются с create, findили remove. Эти методы можно считать разновидностью статических методов для компонентов-сущностей. Они имеют двойное назначение: обслуживать статические данные, которые нужны всем экземплярам компонента, и уменьшать потребность в ресурсах для деловых методов, которые, как статические по своему характеру, целесообразнее выполнять в единственной копии, чем создавать такую копию в каждом экземпляре компонента.

На рис. 13.9 показан пример местного интерфейса компонента-сущности.

package  com.homedirect.еjb.account;

import   Java.rmi.RemoteException;

import  javax.ejb.*;

import  java.util.Collection;

public  interface  AccountHome  extends   javax.ejb.EJBHome

{

public Account  create(String  accountid,

String accounttype,

float balance,

nt  customerid,

float  limit,

float  userfee)

throws  java.rmi.RemoteException,

javax.ejb.CreateException;

public Account  findByPrimaryKey(java.lang.String primaryKey)

throws   java.rmi.RemoteException,

javax.ejb.FinderException;

public Collection findAccounts(int customerid)

throws java.rmi.RemoteException,

javax.ejb.FinderException;

}

Рис. 13.9. Местный интерфейс компонента-сущности

Удаленный интерфейс