InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Home-интерфейс
Remote-интерфейс
Реализация компонента

Home-интерфейс


Как уже говорилось выше, вся работа с компонентами начинается с обращения к Home-интерфейсу. Каждый тип компонент должен его иметь. Пример Home-интерфейса изображен на рис. 8.


Рис.8

В этом интерфейсе Вы должны определить методы двух типов. Это фабричные методы create и поисковые find.

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

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

Remote-интерфейс


После того, как Вы создали или нашли компонент через его Home-интерфейс и получили ссылку на его Remote-интерфейс, можно приступить к взаимодействию с этим EJB-компонентом. Все способы взаимодействия с компонентом строго определены в полученном Remote-интерфейсе. Пример Remote-интерфейса изображен на рис. 9


Рис.9

Стандартом, конечно, являются get/set-методы, считывающие и устанавливающие состояния параметров EJB-компонентов. Можно определить любые методы в Remote-интерфейсе, например пересчета суммы из одной валюты в другую по такому-то курсу второй валюты относительно первой.

Реализация компонента


После того как Вы определили Home и Remote интерфейсы своего компонента, необходимо написать реализации методов определенных в них. К некоторым методам в реализации добавляется приставка ejb. Пример реализации выше рассмотренного компонента показан на рис. 10.


Рис.10

Кратко опишу, зачем нужны все показанные методы и параметры, а также коснусь примерной их реализации:
ctx - ссылка на объект, которая позволяет компоненту получать служебную информацию о пользовательских транзакциях и данные о том какой пользователь работает с компонентом.
ds - ссылка на пул соединений с базой данных.
name, title, description, jndi, port - параметры компонента доступные через методы Remote-интерфейса
serverHome - ссылка на Home-интерфейс компонента Server (не заостряйте свое внимание на этом, так как она всплыла в примере случайно).
setEntityContext/unsetEntityContext - методы, в которых устанавливается ctx. Вызываются только контейнером.
ejbActivate/ejbPassivate - методы управляющие жизненным циклом компонента. Вызываются только контейнером.
ejbRemove - метод который вызывается перед уничтожением компонента на стороне сервера. Для сущностного бина, например, реализует запрос в базу данных на удаление этого компонента из базы.
getConnection - метод который вызывают для взятия соединения из пула соединений (см. ds). Его определяют больше для удобства и он к спецификации EJB не имеет ни какого отношения.
ejbCreate - методы которые реализует create методы из Home-интерфейса. Например, для сущностных бинов в нем реализуют запрос к базе данных для создания компонента и в нем устанавливают параметры компонента.
ejbPostCreate - методы вызываются после ejbCreate. Как использовать эту возможность я не смог придумать и обычно реализация этого метода пуста.
ejbFind - методы реализуют find методы определенные в Home-интерфейсе и производят поиск компонентов в базе данных.
get/set - методы реализуют get/set методы определенные в Remote-интерфейсе.
toString - определен для пущей совместимости с инфраструктурой JAVA. Если, ни дай Бог, кому-то, например, приспичит через System.out.println посмотреть с каким это компонентом сейчас работает программа... К спецификации EJB не имеет ни какого отношения.

[Назад][Содержание][Вперед]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua