Интерфейс именования и каталогов Java - Java Naming and Directory Interface
эта статья нужны дополнительные цитаты для проверка.Июль 2014 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В Интерфейс именования и каталогов Java (JNDI) является Java API для справочная служба который позволяет клиентам программного обеспечения Java обнаруживать и искать данные и ресурсы (в форме Java объекты ) через имя. Как все Ява API-интерфейсы, которые взаимодействуют с хост-системами, JNDI не зависит от базовой реализации. Кроме того, он определяет интерфейс поставщика услуг (SPI), что позволяет справочная служба реализации, которые нужно подключить к платформе.[1] Информация, просматриваемая через JNDI, может быть предоставлена сервером, плоским файлом или базой данных; выбор зависит от используемой реализации.
Типичные варианты использования JNDI включают:
- подключение Java-приложения к внешней службе каталогов (такой как база данных адресов или LDAP сервер)
- позволяя Сервлет Java искать информацию о конфигурации, предоставленную хостингом веб-контейнер[2]
Задний план
Ява RMI и Java EE API используют JNDI API для поиска объектов в сети.[3]
API обеспечивает:
- механизм привязки объекта к имени
- интерфейс поиска в каталоге, который позволяет выполнять общие запросы
- интерфейс событий, который позволяет клиентам определять, когда записи каталога были изменены
- Расширения LDAP для поддержки дополнительных возможностей службы LDAP
В SPI Часть обеспечивает поддержку практически любого типа службы имен и каталогов, включая:
- LDAP
- DNS
- Шекелей
- CORBA именная служба
- файловая система
Sun Microsystems впервые выпустила спецификацию JNDI 10 марта 1997 года.[4] По состоянию на 2006 г.[Обновить], текущая версия - JNDI 1.2.
Базовый поиск
JNDI (Java Naming and Directory Interface) организует свои имена в иерархию. Имя может быть любой строкой, например com.example.ejb.MyBean. Имя также может быть объектом, реализующим имя
интерфейс; однако строка - это наиболее распространенный способ назвать объект. Имя привязывается к объекту в каталоге, сохраняя либо объект, либо Справка к объекту в службе каталогов, идентифицированному по имени.
JNDI API определяет контекст, который указывает, где искать объект. Начальный контекст обычно используется в качестве отправной точки.
В простейшем случае необходимо создать начальный контекст с использованием конкретной реализации и дополнительных параметров, необходимых для реализации. Первоначальный контекст будет использоваться для поиска имени. Начальный контекст аналогичен корню или вершине дерева каталогов файловой системы. Ниже приведен пример создания начального контекста:
Хеш-таблица contextArgs = новый Хеш-таблица<Строка, Строка>();// Сначала вы должны указать фабрику контекста.// Вот как вы выбираете между реализацией jboss// по сравнению с реализацией Sun или других поставщиков.contextArgs.положил( Контекст.INITIAL_CONTEXT_FACTORY, "com.jndiprovider.TheirContextFactory" );// Следующий аргумент - это URL, указывающий, где находится хранилище данных:contextArgs.положил( Контекст.PROVIDER_URL, "база данных jndiprovider" );// (Возможно, вам также придется предоставить учетные данные безопасности)// Затем вы создаете начальный контекстКонтекст myCurrentContext = новый InitialContext(contextArgs);
Затем контекст используется для поиска ранее связанных имен в этом контексте. Например:
MyBean myBean = (MyBean) myCurrentContext.искать("com.mydomain.MyBean");
Альтернатива приведенному выше коду выглядит следующим образом:
Объект Context также можно настроить, добавив файл jndi.properties в путь к классам, содержащий имя исходного класса фабрики контекста и URL-адрес поставщика. Приведенный выше код будет уменьшен, как показано ниже:
// просто нужно создать начальный объект контекста, он попытается прочитать файл jndi.properties из пути к классам.Контекст myCurrentContext = новый InitialContext();
Затем контекст используется для поиска ранее связанных имен в этом контексте. Например:
MyBean myBean = (MyBean) myCurrentContext.искать("com.mydomain.MyBean");
Поиск
Атрибуты могут быть прикреплены к специальным записям, называемым каталогами. Каталоги позволяют искать объекты по связанным с ними атрибутам. Каталоги - это разновидность контекста; они ограничивают пространство имен так же, как это делает структура каталогов в файловой системе.[5]
Смотрите также
использованная литература
- ^ "Java SE - Основные технологии - Интерфейс именования и каталогов Java (JNDI)". www.oracle.com. Получено 2016-12-17.
- ^ "JNDI Resources HOW-TO". Руководство пользователя Apache Tomcat 7. Фонд программного обеспечения Apache. Получено 21 января 2014.
- ^ "Поставщик услуг реестра JNDI / RMI". docs.oracle.com. Получено 2016-12-17.
- ^ "SUN MICROSYSTEMS, INC. ПРЕДСТАВЛЯЕТ JAVA NAMING AND DIRECTORY INTERFACE API". sun.com. 1997-03-10. Архивировано из оригинал на 2004-09-08.
- ^ «Фильтры поиска». docs.oracle.com. Получено 2016-12-17.