Структура EJB-компонента.

Август 10, 2011

image

Взаимодействие клиентов с EJB-компонентами организовано не непосредственно через вызов метода класса компонента, а через некоторый промежуточный слой называемый представлением (view). Представление EJB-компонентов необходимо для реализации концепции неявного промежуточного слоя (implicit middleware).

1. Клиент вызывает бизнес-метод представлений.

2. Представление обращается к сервисам контейнера в зависимости от настроек сделанных в дескрипторе на этапе разработки и/или установки.

3. Представление делегирует вызов метода классу компонента.

4. Класс компонента возвращает результат метода.

5. Представление обращается к сервисам контейнера.

6. Передача результата клиенту.

С точки зрения разработчика представление компонента EJB 2.1 – это два интерфейса языка Java:

1. домашний интерфейс (home interface)

2. компонентный интерфейс (component interface)

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

Домашний интерфейс позволяет клиенту управлять жизненным циклом компонента. Как минимум он содержит операции создания и удаления компонента. Доступ к экземпляру компонента клиент получает через домашний интерфейс, а инфраструктура контейнера от него скрыта.

Компонентный интерфейс позволяет клиенту обращаться к бизнес-методам компонента. При этом происходит взаимодействие с необходимыми сервисами контейнера и генерирование вызова к классу компонента.

В сессионных компонентах EJB 3.0 вместо домашнего и компонентного интерфейса используется единственный бизнес-интерфейс (business interface), который по назначению аналогичен компонентному интерфейсу, компонента EJB 2.1.

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

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

У сборщика или установщика приложения есть возможность изменить настройки сделанные разработчиком компонента через аннотацию, т.к. настройки в XML-дескрипторе имеют приоритет над аннотациями.

____________________________________

Качественные силовые ящики напрямую от производителя — ярп 250. Стандартные корпуса с предохранителями и рубильниками. Отличное качество от надежного производителя. Собственники доверяют, оптовики берут.