Evgeniy Krivosheev Last update: March, 2012 Spring Framework Module 10 – JMS, EJB.

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



Advertisements
Похожие презентации
ENTERPRISE JAVABEANS 3.0 STATEFUL & STATLESS SESSION BEANS.
Advertisements

Evgeniy Krivosheev Andrey Stukalenko Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 1 – Введение.
1 Введение Информационные системы Альтернативы задачи доступа к данным Стандарт JPA и коммерческие ORM имплементации Определение ORM Проблемы полного преобразования.
Рассматриваемые темы Введение в кластеринг Кластеринг Stateless session beans Кластеринг Stateful session beans Конфигурация кластеринга 2-1.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.
Рассматриваемые темы Технология EJB Типы EJB Вызов EJB Сборка и развертывание EJB- приложения 2-1.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – DAO, JDBC.
Исключения в EJB Кряжев Василий
Комплексная система обеспечения межведомственного электронного взаимодействия региональных и федеральных органов исполнительной власти на базе СМЭВ.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring. Малышкин Фёдор
Харичкин Александр МФТИ(ГУ) 16 июня Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного.
EJB Environment Кряжев Василий
Распределенная обработка информации Разработано: Е.Г. Лаврушиной.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Технология модели «клиент-сервер». Роли Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса Компьютер, желающий воспользоваться.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 7 – Transactions.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
1 © Luxoft Training 2013 Spring Framework Module 10 JMS & EJB.
Обзор возможностей Инверсия управления Аспектно-ориентированное программирование.
Транксрипт:

Evgeniy Krivosheev Last update: March, 2012 Spring Framework Module 10 – JMS, EJB

2 Содержание Поддержка JMS в Spring Поддержка EJB в Spring

3 Spring :: JMS :: JmsTemplate JMS – Java Messaging Service: обмен сообщениями Взаимодействие «издание-подписка» Взаимодействие «точка-точка»

4 Spring :: JMS :: JmsTemplate Для работы с JMS используется класс JmsTemplate - вспомогательный класс, для доступа к JMS ; Для JmsTemplate необходима ссылка на ConnectionFactory ConnectionFactory : Объект из контракта JMS; Получается из JNDI; Используется клиентским приложением для создания соединения с JMS- провайдером; Включает в себя множество конфигурационных параметров;

5 Spring :: JMS :: JmsTemplate Конфигурация connecionFactory и jmsTemplate:

6 Spring :: JMS :: JmsTemplate Destination: Объект из контракта JMS; Получается из JNDI; Часто известен только во время выполнения; DestinationResolver : Для определения Destination во время выполнения; Отправка сообщения:

7 Spring :: JMS :: Пример Синхронное получение сообщения:

8 Spring :: JMS Message Listener: регистрация и получение сообщений; управление ресурсами; участие в транзакциях; обработка исключений; простейшая реализация – SimpleMessageListenerContainer Асинхронное получение сообщения:

9 Spring :: EJB

10 Spring :: EJB

11 Spring :: Поддержка EJB Spring рассматривается как альтернатива EJB ; Но эти технологии можно использовать совместно; Spring упрощает работу с EJB ; При работе с EJB возникает проблема тестирования ; Необходимо получать бины из JNDI и вызывать метод create() ; Spring упрощает процесс тестирования ; Позволяет декларативно конфигурировать объекты ;

12 Spring :: Поддержка EJB Spring Framework поддерживает: EJB 2. x ; EJB 3. x ; При обращении к EJB, нет необходимости точно знать версию – Spring сам определит с какой версией EJB работает ; Для EJB 3, можно использовать не специфичный для EJB способ вызова, а получить объект из JNDI ; Все примеры приведены для версии EJB 2. x ;

13 Spring :: EJB :: Пример Бизнес-интерфейс Контроллер

14 Spring :: EJB :: Пример Кофигурация local interface

15 Spring :: EJB :: Пример Кофигурация remote interface

16 Spring :: EJB :: Достоинства При необходимости заменить EJB на POJO или mock объект необходимо изменить только конфигурацию, не меняя Java код ; Также нет необходимости писать код поиска в JNDI и другой «служебный код» ; Однотипность обращения к local и remote EJB - нет необходимости обрабатывать RemoteException в бизнес-методах для remote EJB ; При возникновении RemoteException во время вызова удаленного бина, выбрасывается non-checked RemoteAccessException ;

17 Spring :: EJB :: Особенности Proxy-класс для EJB - singleton (нет необходимости в prototype) ; Многие реализации контейнеров бинов пре-инициализируют singletonы ; Может быть попытка создать proxy объект для которого еще не создан EJB ; Объект создается один раз в методе init(), а потом кэшируется ; Решение – НЕ пре-инициализировать объекты, а создавать их по первому запросу ; Это задается атрибутом lazy-init ; Транзакции обеспечиваются J2EE контейнером, Spring обеспечивает только вызов методов EJB ;

18 Spring :: EJB или Spring? ТехнологияEJBSpring Поддрежка транзакций Поддерживаются только атрибуты транзакций. Поддреживаются как атрибуты транзакций, так и уровни изоляции. Транзакции могут быть вложенными. Постоянство Использование аннотаций JPA Поддержка JPA, Hibernate, JDBC, iBatis Управление транзакциями Только JTAПоддержка JTA, JDBC, Hibernate Управление состоянием Полная поддержка через Stateful Session Bean Непрямая поддержка через управление Web-сессиями. Сообщения Полная поддержка JMSПоддержка JMS через JMSTemplate AOPОграниченная поддержка через интерцепторы Полная поддержка через AspectJ и Spring AOP Распределенная работа Интегрированная поддержка, обеспечивается сервером Может быть добавлена ограниченная поддержка. Имплементация Стандарт; множество серверов приложений Одна имплементация; не стандарт

19 Вопросы!?