Реализация компонента
После того как Вы определили 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 не имеет ни какого отношения.
[Продолжение следует...]
Copyright © 2001 Eugene Igumnov. Все права защищены.
Домашняя страничка:
23.05.2001
|