Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.

Методология построения корпоративных информационных систем на основе технологии EJB

Часть 4

Автор: Евгений Игумнов
Геокад Плюс (Новосибирск)

Home-интерфейс

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

Home-интерфейс

Рис.8

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

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

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

Remote-интерфейс

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

Remote-интерфейс

Рис.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 не имеет ни какого отношения.

[Продолжение следует...]

Copyright © 2001 Eugene Igumnov. Все права защищены.
Домашняя страничка: http://manager.olc.ru
23.05.2001

Назад | Содержание

 

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...