什么是JNDI? 它的基本用途是什么? 什么时候使用?
什么是JNDI? 它的基本用途是什么? 什么时候使用?
什么是JNDI?
它代表Java命名和目录接口 。
它的基本用途是什么?
JNDI允许分布式应用程序以抽象的,资源无关的方式查找服务。
什么时候使用?
最常见的用例是在Java EE应用程序服务器上设置数据库连接池。 在该服务器上部署的任何应用程序都可以使用JNDI名称java:comp/env/FooBarPool
访问所需的连接,而无需知道有关连接的详细信息。
这有几个好处:
- 如果您有一个应用程序从
devl->int->test->prod
环境移动的部署序列,则可以在每个环境中使用相同的JNDI名称,并隐藏所使用的实际数据库。 应用程序在环境之间迁移时不必更改。 - 您可以最大限度地减less需要了解访问生产数据库凭据的人数。 只有Java EE应用程序服务器需要知道您是否使用JNDI。
什么是JNDI?
Java命名和目录接口TM (JNDI)是一个应用程序编程接口(API),为使用Java TM编程语言编写的应用程序提供命名和目录function。 它被定义为独立于任何特定的目录服务实现。 因此,可以通用的方式访问各种目录(新的,新兴的,已经部署的)。
它的基本用途是什么?
上面的答案大部分都包含在内,但是我想在这里提供架构,这样上面的内容会更有意义。
要使用JNDI,您必须具有JNDI类和一个或多个服务提供者。 Java 2 SDK v1.3包含三个服务提供者,用于以下命名/目录服务:
- 轻量级目录访问协议(LDAP)
- 通用对象请求代理体系结构(CORBA)通用对象服务(COS)名称服务
- 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来执行命名操作,包括读取操作和更新命名空间的操作。 这里介绍以下操作。