# 课程：JNDI 概述

> 原文： [https://docs.oracle.com/javase/tutorial/jndi/overview/index.html](https://docs.oracle.com/javase/tutorial/jndi/overview/index.html)

Java 命名和目录接口（JNDI）是一个应用程序编程接口（API），它为使用 Java™编程语言编写的应用程序提供[命名](naming.html)和[目录](dir.html)功能。它被定义为独立于任何特定的目录服务实现。因此，可以以通用方式访问各种目录 - 新的，新兴的和已经部署的目录。

## 建筑

JNDI 体系结构由 API 和服务提供者接口（SPI）组成。 Java 应用程序使用 JNDI API 来访问各种命名和目录服务。 SPI 允许透明地插入各种命名和目录服务，从而允许使用 JNDI API 的 Java 应用程序访问其服务。见下图：

<center>![JNDI Architecture](img/a23ba8d9953f53ae437cc28f0b75192e.jpg)</center>

## 打包

JNDI 包含在 Java SE 平台中。要使用 JNDI，您必须具有 JNDI 类和一个或多个服务提供者。 JDK 包括以下命名/目录服务的服务提供者：

*   轻量级目录访问协议（LDAP）
*   公共对象请求代理体系结构（CORBA）公共对象服务（COS）名称服务
*   Java 远程方法调用（RMI）注册表
*   域名服务（DNS）

其他服务提供商可以从 [JNDI 页面](http://www.oracle.com/technetwork/java/jndi/index.html)下载或从其他供应商处获得。

JNDI 分为五个包：

*   [javax.naming](naming.html)
*   [javax.naming.directory](dir.html)
*   [javax.naming.ldap](dir.html)
*   [javax.naming.event](event.html)
*   [javax.naming.spi](event.html)

本课程的下一部分简要介绍了 JNDI 包。