什么是JNDI? 它的基本用途是什么? 什么时候使用?
当前回答
我只是好奇为什么官方文件如此被忽视,而这些文件已经一丝不苟地阐述了细节。
但如果你想了解这些案例,请参考duffymo的答案。
Java命名和目录接口(JNDI)是一个应用程序编程接口(API),为使用JavaTM编程语言编写的应用程序提供命名和目录功能。它被定义为独立于任何特定的目录服务实现。因此,可以以通用的方式访问各种目录——新的、正在出现的和已经部署的目录。
以及它的结构
以及通常如何使用它。
其他回答
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资源适配器定义的任何其他类型。 它提供了一种能够创建访问的语法,无论访问是内部的还是外部的。例如(在这个例子中,comp/env的意思是组件/环境,有很多其他的语法):
jndiContext.lookup("java:comp/env/persistence/customerDB");
什么是JNDI ?
它代表Java命名和目录接口。
它的基本用途是什么?
JNDI允许分布式应用程序以抽象的、独立于资源的方式查找服务。
什么时候使用?
最常见的用例是在Java EE应用服务器上设置数据库连接池。部署在该服务器上的任何应用程序都可以使用JNDI名称java:comp/env/FooBarPool访问所需的连接,而无需了解有关连接的详细信息。
这有几个优点:
如果你有一个应用程序从devl->int->test->prod环境迁移的部署序列,你可以在每个环境中使用相同的JNDI名称,并隐藏实际使用的数据库。应用程序在环境之间迁移时不必更改。 您可以尽量减少需要知道访问生产数据库的凭据的人数。只有Java EE应用服务器需要知道您是否使用JNDI。
什么是JNDI ?
Java命名和目录接口(JNDI)是一个应用程序编程接口(API),为使用JavaTM编程语言编写的应用程序提供命名和目录功能。它被定义为独立于任何特定的目录服务实现。因此,可以以通用的方式访问各种目录(新目录、新目录和已经部署的目录)。
它的基本用途是什么?
上面的答案涵盖了大部分内容,但我想在这里提供架构,以便上面的内容更有意义。
要使用JNDI,您必须拥有JNDI类和一个或多个服务提供者。Java 2 SDK v1.3包含三个服务提供者,用于以下命名/目录服务:
轻量级目录访问协议(LDAP) CORBA (Common Object Request Broker Architecture)通用对象服务(COS)名称服务 Java远程方法调用注册表
所以基本上你创建对象并在目录服务上注册它们,然后你可以在目录服务上进行查找和执行操作。
我只是好奇为什么官方文件如此被忽视,而这些文件已经一丝不苟地阐述了细节。
但如果你想了解这些案例,请参考duffymo的答案。
Java命名和目录接口(JNDI)是一个应用程序编程接口(API),为使用JavaTM编程语言编写的应用程序提供命名和目录功能。它被定义为独立于任何特定的目录服务实现。因此,可以以通用的方式访问各种目录——新的、正在出现的和已经部署的目录。
以及它的结构
以及通常如何使用它。
什么是JNDI ?
JNDI代表Java命名和目录接口。它是J2EE的标准。
它的基本用途是什么?
使用这个API,您可以访问许多类型的数据,如对象、设备、命名文件和目录服务。EJB使用它来查找远程对象。JNDI旨在提供一个公共接口来访问现有的服务,如DNS、NDS、LDAP、CORBA和RMI。
什么时候使用?
您可以使用JNDI执行命名操作,包括读取操作和更新名称空间的操作。此处介绍以下操作。