Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Ресурсы и именование JNDI

В распределённом приложении компоненты должны иметь доступ к другим компонентам и ресурсам, таким как базы данных. Например, сервлет может вызывать удалённые методы для Enterprise-бина, который получает информацию из базы данных. В платформе Java EE сервис именования Java Naming and Directory Interface (JNDI) позволяет компонентам находить другие компоненты и ресурсы.

Ресурс — это программный объект, который обеспечивает соединения с системами, такими как серверы баз данных и системы обмена сообщениями. (Ресурс подключения к базе данных Java иногда называют источником данных.) Каждый объект ресурса идентифицируется уникальным, удобным для людей именем, называемым именем JNDI. Например, имя JNDI предустановленного ресурса JDBC для Apache Derby, поставляемого с GlassFish Server — java:comp/DefaultDataSource.

Администратор создаёт ресурсы в пространстве имён JNDI. В GlassFish Server вы можете использовать консоль администрирования или команду asadmin для создания ресурсов. Приложения затем используют аннотации для добавления ресурсов. Если приложение использует инъецирование ресурсов, API JNDI вызывается GlassFish Server, а не приложением. Однако приложение также может находить ресурсы, совершая прямые вызовы JNDI API.

Объект ресурса и его имя JNDI связаны между собой сервисом имён и каталогов. Чтобы создать новый ресурс, в пространство имён JNDI вводится новое имя/привязка объекта. Инъецировать ресурсы можно аннотацией @Resource.

Вы можете использовать дескриптор развёртывания, чтобы переопределить назначение ресурсов, указанное в аннотации. Использование дескриптора развёртывания позволяет изменять приложение только переупаковывая его, без перекомпиляции исходных файлов. Однако для большинства приложений дескриптор развёртывания не требуется.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)