这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参见Java语言变化。
有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息,请参见JDK发行说明。
事件和服务提供者包
事件包
javax.naming.event包含用于支持命名和目录服务中的事件通知的类和接口。事件通知在事件通知教程中有详细描述。
-
事件
-
NamingEvent表示由命名/目录服务生成的事件。事件包含一个类型,用于标识事件的类型。例如,事件类型分为影响命名空间的事件(如"对象已添加")和不影响命名空间的事件(如"对象已更改")。
-
监听器
-
NamingListener是一个监听NamingEvent的对象。每种事件类型都有相应类型的NamingListener。例如,NamespaceChangeListener表示对命名空间更改事件感兴趣的监听器,ObjectChangeListener表示对对象更改事件感兴趣的监听器。
要接收事件通知,监听器必须注册到EventContext或EventDirContext中。一旦注册,监听器将在命名/目录服务中发生相应更改时接收事件通知。有关事件通知的详细信息,请参阅JNDI教程。
服务提供程序包
javax.naming.spi包提供了不同命名/目录服务提供程序的开发者开发和连接其实现的手段,以便这些相应服务可以从使用JNDI的应用程序中访问。
-
插件架构
-
javax.naming.spi 包允许动态地插入不同的实现。这些实现包括 初始上下文 和可以从初始上下文访问的上下文的实现。
-
Java对象支持
-
javax.naming.spi 包支持实现查找和相关方法的开发人员返回对于Java程序员来说是自然和直观的Java对象。例如,如果你从目录中查找打印机名称,那么你可能期望得到一个打印机对象来操作。这种支持以对象工厂的形式提供。
该包还提供了支持反向操作的功能。也就是说,实现Context.bind()和相关方法的开发人员可以接受Java对象并将对象存储在底层命名/目录服务可以接受的格式中。这种支持以状态工厂的形式提供。
-
多命名系统(联合)
-
JNDI操作允许应用程序提供跨多个命名系统的名称。在完成操作的过程中,一个服务提供者可能需要与另一个服务提供者进行交互,例如将操作传递给下一个命名系统继续进行。该包提供了不同提供者合作完成JNDI操作的支持。
有关服务提供者机制的详细信息,请参阅JNDI教程。