EJB Environment Кряжев Василий VKryazhev@luxoft.com.

Презентация:



Advertisements
Похожие презентации
Interceptors Василий Кряжев
Advertisements

Исключения в EJB Кряжев Василий
Session beans Василий Кряжев
EJB Local Interface Кряжев Василий
Рассматриваемые темы Технология EJB Типы EJB Вызов EJB Сборка и развертывание EJB- приложения 2-1.
Рассматриваемые темы Подсистема безопасности сервера приложений Конфигурация безопасности в EJB Сервисы авторизации и аутентификации в Java 2-1.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Тема 11 Медицинская помощь и лечение (схема 1). Тема 11 Медицинская помощь и лечение (схема 2)
Рассматриваемые темы Введение в кластеринг Кластеринг Stateless session beans Кластеринг Stateful session beans Конфигурация кластеринга 2-1.
Рассматриваемые темы Введение в Web Services EJB и Web Services 2-1.
ENTERPRISE JAVABEANS 3.0 STATEFUL & STATLESS SESSION BEANS.
Message-Driven Beans Василий Кряжев
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.
Кафедра ОСУ, Java 2004 Слайд 1 Наследование Наследование позволяет использовать существующий класс для определения новых классов, т.е. способствует.
Использование XML Тема 4*. Слайд 2. Настройка свойств dataSet1.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Evgeniy Krivosheev Last update: March, 2012 Spring Framework Module 10 – JMS, EJB.
Транксрипт:

EJB Environment Кряжев Василий

Рассматриваемые темы JNDI Environment Naming Context EJB Dependency Injection Environment Entries 1-2

Рассматриваемые темы JNDI Environment Naming Context Кому и зачем нужен JNDI ENC? Как его использовать? EJB Dependency Injection Environment Entries 1-3

Environment Naming Context Необходима возможность настраивать логику работы компонента во время сборки и развертывания приложения без внесения изменений в исходный код На этапе разработки окружение в котором будет работать компонент не всегда известно Кому и зачем нужен JNDI ENC? 1-4

1-5 JNDI ENC Контейнер обеспечивает JNDI ENC

Использование ENC Дескриптора развертывания Environment аннотаций используемых в классе бина Контейнер заполняет ENC на основе: 1-6

Использование ENC Контейнер может инициализировать бин значениями из JNDI ENC через механизм dependency injection Контейнер делает доступным JNDI ENC во время выполнения. Для поиска в JNDI ENC можно воспользоваться: JNDI API Методом EJBContext.lookup Получение данных из ENC: 1-7

TravelAgentBean ejb/ProcessPayment Session com.titan.processpayment.ProcessPaymentLocal ProcessPaymentBean Заполнение JNDI ENC На основе дескриптора развертывания: 1-8 ejb-jar.xml

Заполнение JNDI name="ejb/ProcessPayment", beanInterface=ProcessPaymentLocal.class, beanName="ProcessPaymentBean« public class TravelAgentBean implements TravelAgentRemote { public TicketDO bookPassage(CreditCardDO card, double amount) { ProcessPaymentLocal payment = null; try { javax.naming.InitialContext ctx = new InitialContext( ); String jndiName = "java:comp/env/ejb/ProcessPayment; payment = (ProcessPaymentLocal) ctx.lookup(jndiName); } catch (javax.naming.NamingException ne) { throw new EJBException(ne); } payment.process(card, customer, amount);... } На основе environment аннотаций: 1-9 com.acme.TravelAgentBean.java

1-10 Environment Naming Context Что можно регистрировать в JNDI ENC? см. далее

1-11 Environment Naming Context Что можно регистрировать в JNDI ENC? см. далее

1-12 Environment Naming Context Что можно регистрировать в JNDI ENC?

Выводы Какие выгоды дает предоставляемый контейнером Environment Naming Context Как можно заполнять и использовать ENC В этой секции мы узнали: 1-13

Рассматриваемые темы JNDI Environment Naming Context EJB Dependency Injection Dependency injection как альтернатива поиску в JNDI Типы dependency injection Environment Entries 1-14

Поиск в JNDI ответственность bean instance Инициализация на основе DI ответственность контейнера DI как альтернатива поиска в JNDI 1-15 Dependency Injection

Типы Dependency Injection Field public class DeptServiceBean implements DeptService AuditService audit; … } Setter public class DeptServiceBean implements DeptService { private AuditService public void setAuditService(AuditService audit) { this.audit = audit; } … } 1-16

public class OrderAgentBean implements OrderAgentLocal SessionContext (name= jdbc/OrdersDB, mappedName=defaultDS) private javax.sql.DataSource (name=jms/mdbQueue, mappedName=defaultQueue) private Queue (unitName=review) private EntityManager em; … } 1-17 com.acme.OrderAgentBean.java Пример dependency injection

Рассматриваемые темы JNDI Environment Naming Context EJB Dependency Injection Environment Entries Определение в дескрипторе развертывания Использование в EJBs 1-18

Environment Entry OrderAgentBean minOrderTotal java.lang.Integer Декларирование Environment Entity в дескрипторе развертывания ejb-jar.xml

Environment Entry java.lang.String java.lang.Integer java.lang.Boolean java.lang.Character java.lang.Double java.lang.Float java.lang.Long Допустимые значения : 1-20

Пример // Через dependency int minOrderTotal; // Через dependency injection + значение по int minOrderTotal = 200; // Поиск в JNDI Context ctx = new InitialContext(); ctx = (Integer) ctx.lookup(java:comp/env/minOrderTotal); 1-21 Использование Environment Entity

Environment Entry OrderAgentBean minOrderTotal java.lang.Integer 200 com minValue 1-22 Инъекция Environment Entity через дескриптор развертывания ejb-jar.xml

Выводы Задавать и использовать environment entries Инициализировать environment entry в класс бина через дескриптор развертывания В этой секции мы узнали как: 1-23

Лабораторная Работа с Environment Entries 1-24

Выводы Получать ресурсы и ссылки на другие EJBs используя JNDI Environment Naming Context (ENC) Получать ресурсы и ссылки на другие EJBs используя механизм dependency injection Декларировать и использовать EJB environment entries В этом модуле, мы узнали как: 1-25

Недоделки Добавить про resource references и ejb references Примеры взяты из различных мест и не согласованы, желательно в конце их привести к единому виду, как будь-то они для одной и той же задачи Картинка на слайде DI как альтернатива поиска в JNDI (EJB 3.0 in Action) Примеры Заполнение ENC (Enterprise JavaBeans 5ed) Примеры Типы DI (Pro EJB 3.0) Лабораторная работа 1-26