Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.

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



Advertisements
Похожие презентации
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI.
Advertisements

Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Evgeniy Krivosheev Last update: March, 2012 Spring Framework Module 10 – JMS, EJB.
Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – DAO, JDBC.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
EJB Environment Кряжев Василий
Ассоциативные списки Поиск данных происходит не по индексу или положению объекта, а по его ассоциативной связи: public interface Map { // Доступ к объектам.
Объектно-ориентированный подход в языке C#. Класс в языке C# - ссылочный тип, определенный пользователем. Для классов ЯП C# допустимо только единичное.
EXtreme Programming XP Тема 3. XP Пусть есть некоторая информационная система для банков. В качестве основной валюты для расчетов используется доллар,
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Основы ООП и C# Работа с объектами и классами. Классы Класс специальный тип данных для описания объектов. Он определяет данные и поведение типа. Определение.
Встроенные классы в Java Макаревич Л. Г.. Разновидности встроенных классов Вложенные (Nested) классы Внутренние (Inner) классы Локальные классы Анонимные.
Методики «Inversion of Control» и «Dependency Injection». Применение в Spring. Малышкин Фёдор
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
Классы в C#. Две роли классов Класс Класс – это модуль, архитектурная единица построения программной системы. Модульность построения – основное свойство.
1 Паттерны проектирования MVC, MVP, MVVM. 2 Обзор Cхема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения,
Рассматриваемые темы Технология EJB Типы EJB Вызов EJB Сборка и развертывание EJB- приложения 2-1.
8. Моделирование логической структуры системы Диаграмма классов Диаграмма классов служит для моделирования классов и отношений между ними.
С# и ООП Формальное определение класса с C# Класс в C# - это пользовательский тип данных (user defined type), который состоит из данных (часто называемых.
Высокоуровневые методы информатики и программирования Лекция 9 Делегаты.
Транксрипт:

Evgeniy Krivosheev Vyacheslav Yakovenko Last update: Feb, 2012 Spring Framework Module 4 – JNDI

2 Содержание Интеграция Spring c JNDI

3 Spring :: Интеграция c JNDI Основной функцией любой службы имен является отображение понятных для людей имен объектов ( таких как адреса, идентификаторы ) и их связывания с объектами, которые обычно используются в ПО. Например, DNS переводит имена компьютеров ( в IP- адреса ( ).

4 Spring :: JNDI JNDI – Java Naming and Directory Interface Предназначен для мэппинга имени к объектам в распределенной системе

5 Spring :: JNDI Операции над каталогом JNDI: // get the Initial Context Context ctx = new InitialContext(); // bind object String name = "mary"; String = ctx.bind(name, ); // lookup object String str = (String) ctx.lookup("mary"); // unbind object ctx.unbind(name);

6 Spring :: JNDI new InitialContext()

7 Spring :: JNDI vs. IoC / DI AB AB Репозиторий JNDI Имя B_NAME для поиска B Регистрация в JNDI под именем B_NAME Традиционный подход: связи между объектами внутри кода Паттерн Service Locator (JNDI в JEE): объекты в репозитории IoC: объекты ничего не знают друг о друге AB Application context - создает объект A - инициализирует - создает объект A - инициализирует, сообщая о B class A { private B b; } class B { }

8 Spring :: Интеграция c JNDI В большинстве случаев, в производстве обращение к JNDI требуется для получения доступа к DataSource и JtaTransactionManager. Spring предоставляет достаточно простой и интуитивно понятный вариант обращения к ним:

9 Spring :: Интеграция c JNDI Тем не менее поддержка JNDI в Spring, на этом не заканчивается; Основные классы для работы с JNDI в Spring: –org.springframework.jndi.JndiTemplate –Interface org.springframework.jndi.JndiCallback –org.springframework.jndi.JndiObjectFactoryBean

10 Spring :: Интеграция c JNDI org.springframework.jndi.JndiTemplate: Отвечает за операции поиска и связывания объектов (lookup, binding, rebinding, unbind); А также предоставляет интерфейс основанный на callbackах: – T execute(JndiCallback contextCallback) Пример: JndiTemplate template = new JndiTemplate(); … template.bind("SomeKey", "SomeValue"); … String value = (String)template.lookup("SomeKey"); template.rebind("SomeKey", "SomeOtherValue");

11 Spring :: Интеграция c JNDI org.springframework.jndi.JndiCallback : Например, если мы хотим логировать JNDI операции необходимо: –Создать новый класс, реализующий JndiCallback; –Передать его в метод execute из JndiTemplate;

12 Spring :: Интеграция c JNDI org.springframework.jndi.JndiCallback : JndiTemplate template = new JndiTemplate(); CustomJndiAccessForLogging callback = new CustomJndiAccessForLogging("key"); Object result = template.execute(callback); public class CustomJndiAccessForLogging implements JndiCallback { private String key; public CustomJndiAccessForLogging(String key) { this.key = key;} public Object doInContext(Context context) throws NamingException { System.out.println("Start lookup operation"); Object value = context.lookup(key); System.out.println("End lookup operation"); return value; }

13 Spring :: Интеграция c JNDI org.springframework.jndi.JndiObjectFactoryBean : Отвечает за получение информации из JNDI репозитория; Основная стратегия – поиск и кэширование объектов; Она может быть изменена декларативно или программно;

14 Spring :: Интеграция c JNDI org.springframework.jndi.JndiObjectFactoryBean : В бине InfoFromJndi значение поля welcomeMessage должно браться из JNDI Вместо атрибута value для свойства welcomeMessage определен JndiObjectFactoryBean – он получает значение из JNDI public class InfoFromJndi { String welcomeMessage; }

15 Вопросы!?