JNDI目录服务

4
我是新手,对于 JNDI 不太了解,我知道它与 Java 命名服务有关,可以使用它来绑定和解绑对象并使用用户友好的名称。但是我想学习关于 JNDI 目录服务的知识,我在互联网上尝试了解 JNDI 目录服务,他们试图解释我们可以使用属性存储、检索和搜索对象。但我无法分析 JNDI 目录服务的实际概念。如果有人能用一些实时例子解释 JNDI 中的目录服务,我会很高兴。我已经尝试过 oracle documentation,所以请不要再向我推荐文档。

请提供更多信息,例如数据库、服务器等。 - Braj
实时例子:JNDI 用于维护 DataSource 对象以获取数据库连接。 - Braj
你的意思是真实世界的例子,对吗?就像《Head First》一样? - Deepanshu J bedi
实际上,我是一位Java培训师,我需要解释一下JNDI目录服务,但是我不知道这方面的任何东西。因此,我需要一些指导,什么是JNDI目录服务,我们在哪里可以应用它,JNDI命名和目录服务之间有什么区别。 - Jagadeesh
请访问维基百科页面:http://en.m.wikipedia.org/wiki/Java_Naming_and_Directory_Interface - Deepanshu J bedi
显示剩余6条评论
2个回答

3
是的,最终我得到了对我的问题的解答,
“什么是目录服务,与JNDI的命名服务相比又有什么不同?”
答案是:通过使用JNDI命名服务,我们可以在集中位置称为JNDI服务器中存储带有用户友好名称的对象。
我们可以在任何Java应用程序中检索它们,而无需在各个应用程序中重新创建它们。
当您想要在应用程序中获取数据库连接时,这非常有用。您可以通过使用JNDI的命名服务从JNDI服务器轻松地获得准备就绪的连接对象,而无需在应用程序中创建数据库连接。
这就像,而不是自己购买所有图书,您可以去图书馆并从图书馆获取您想要的书籍。
谈到JNDI的目录服务,通过使用目录服务,您可以使用用户友好的名称存储对象,以及可以存储一些其他信息的对象。您可以像键值对一样存储此附加信息,也称为属性。
例如,从JNDI服务器中获取现成的连接对象,但是JNDI中存在许多连接对象,一个连接指向MYSQL数据库,另一个连接指向ORACLE数据库,现在如何知道哪个连接对象指向MYSQL,哪个连接对象指向ORACLE。
为了实现这个目的,每当我们将连接对象存储在数据库中时,可以同时存储一些附加属性,这些属性指示连接对象所指向的数据库名称。例如,对于ORACLE数据库连接对象,属性的示例是databaseName=ORACLE,而对于MYSQL连接对象,属性的示例是databaseName=MYSQL
这就是JNDI目录服务的确切用途。 您可以从此处了解更多信息。
在此我还需要感谢Deepanshu Bedi先生,他帮助我很多,让我自己找到了答案。

-1
JNDI是Java命名和目录接口。它用于区分应用程序开发人员和应用程序部署者的关注点。当你编写一个依赖于数据库的应用程序时,你不需要担心连接到该数据库的用户名或密码。JNDI允许开发人员为数据库指定一个名称,并依赖于部署者将该名称映射到实际的数据库实例。
例如,如果你正在编写在Java EE容器中运行的代码,你可以编写以下代码来获取名为"Database"的数据源:
DataSource dataSource = null;
try
{
    Context context = new InitialContext();
    dataSource = (DataSource) context.lookup("Database");
}
catch (NamingException e)
{
    // Couldn't find the data source: give up
}

请注意,这里没有关于数据库驱动程序、用户名或密码的内容。这些都是在容器内配置的。

目录服务简介

目录服务提供了一种管理共享信息存储和分发的方式。这些信息可以涵盖公司员工的电子邮件地址和电话号码,部门打印机的IP地址和打印功能,以及一套应用服务器的配置信息等。

目录服务管理一个条目目录。一个目录条目可以指代人、地点、服务或几乎任何其他具体对象或抽象概念。一个条目还有与之相关联的属性;一个属性包括名称或标识符和一个或多个值。这些属性描述了该条目,确切的属性集取决于条目类型。例如,一个个人条目可能具有以下属性(请注意两个电子邮件地址):

Name: John Doe
Address: 123 Somewhere Street
Email: john@xyz.com
Email: jdoe@abcd.com

目录服务是简单的数据库。与它们的关系型表亲一样,许多常见的目录服务提供搜索和过滤功能。这些目录服务不仅可以根据名称定位条目,还可以根据一组搜索条件定位条目。

命名服务和目录服务是逻辑伙伴。事实上,大多数现有产品都提供这两种功能。命名服务提供名称到对象映射,而目录服务提供有关对象的信息以及搜索它们的工具。

互联网上最好的JNDI目录服务解释


非常感谢Deepanshu Bedi,他让我了解到JNDI的另一个优势。您已经非常清楚地向我解释了JNDI命名服务,如果您知道有关JNDI目录服务的内容,请与我分享。 - Jagadeesh
@JhashVenku 很高兴能帮忙 :) 你真的应该看看 javaworld.com,它有很多惊人的东西。就连我现在也在阅读它 :P 点赞。 - Deepanshu J bedi
JNDI目录服务 @JhashVenku - Deepanshu J bedi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接