什么是JNDI? 它的基本用途是什么? 什么时候使用?

什么是JNDI? 它的基本用途是什么? 什么时候使用?

什么是JNDI?

它代表Java命名和目录接口 。

它的基本用途是什么?

JNDI允许分布式应用程序以抽象的,资源无关的方式查找服务。

什么时候使用?

最常见的用例是在Java EE应用程序服务器上设置数据库连接池。 在该服务器上部署的任何应用程序都可以使用JNDI名称java:comp/env/FooBarPool访问所需的连接,而无需知道有关连接的详细信息。

这有几个好处:

  1. 如果您有一个应用程序从devl->int->test->prod环境移动的部署序列,则可以在每个环境中使用相同的JNDI名称,并隐藏所使用的实际数据库。 应用程序在环境之间迁移时不必更改。
  2. 您可以最大限度地减less需要了解访问生产数据库凭据的人数。 只有Java EE应用程序服务器需要知道您是否使用JNDI。

什么是JNDI?

Java命名和目录接口TM (JNDI)是一个应用程序编程接口(API),为使用Java TM编程语言编写的应用程序提供命名和目录function。 它被定义为独立于任何特定的目录服务实现。 因此,可以通用的方式访问各种目录(新的,新兴的,已经部署的)。

它的基本用途是什么?

上面的答案大部分都包含在内,但是我想在这里提供架构,这样上面的内容会更有意义。

在这里输入图像说明

要使用JNDI,您必须具有JNDI类和一个或多个服务提供者。 Java 2 SDK v1.3包含三个服务提供者,用于以下命名/目录服务:

  1. 轻量级目录访问协议(LDAP)
  2. 通用对象请求代理体系结构(CORBA)通用对象服务(COS)名称服务
  3. Java远程方法调用(RMI)registry

所以基本上你可以创build对象并将它们注册到目录服务上,稍后你可以查找并执行操作。

通俗地讲,JNDI基本上是一个能够获得内部/外部资源实例的接口,例如

  javax.sql.DataSource, javax.jms.Connection-Factory, javax.jms.QueueConnectionFactory, javax.jms.TopicConnectionFactory, javax.mail.Session, java.net.URL, javax.resource.cci.ConnectionFactory, 

或由JCA资源适配器定义的任何其他types。 它提供了一种可以创build访问权限的语法,无论它们是内部的还是外部的。 即(comp / env在这个例子中意味着组件/环境,还有很多其他的语法):

 jndiContext.lookup("java:comp/env/persistence/customerDB"); 

JNDI概述

JNDI是Java技术中指定的一种API,为以Java编程语言编写的应用程序提供命名和目录function。 它专为使用Java的对象模型的Java平台而devise。 使用JNDI,基于Java技术的应用程序可以存储和检索任何types的已命名的Java对象。 另外,JNDI还提供了执行标准目录操作的方法,例如将属性与对象关联以及使用属性search对象。

JNDI也被定义为独立于任何特定的命名或目录服务实现。 它使应用程序能够使用通用的API访问不同的,可能是多个命名和目录服务。 不同的命名和目录服务提供者可以无缝地插入这个通用API的后面。 这使基于Java技术的应用程序能够利用各种现有命名和目录服务(如LDAP,NDS,DNS和NIS(YP))中的信息,并使应用程序与传统软件和系统共存。

使用JNDI作为工具,您可以构build新的function强大且可移植的应用程序,不仅可以利用Java的对象模型,还可以与部署它们的环境很好地整合。

参考

什么是JNDI?

JNDI代表Java命名和目录接口。 它来自J2EE的标准。

它的基本用途是什么?

有了这个API,你可以访问许多types的数据,如对象,设备,命名和目录服务的文件,例如。 它被EJB用来查找远程对象。 JNDI旨在提供一个通用接口来访问现有的服务,如DNS,NDS,LDAP,CORBA和RMI。

什么时候使用?

您可以使用JNDI来执行命名操作,包括读取操作和更新命名空间的操作。 这里介绍以下操作。