命名服务的相关概念:
Naming Service 命名服务
命名服务将名称和对象进行关联,提供通过名称找到对象的操作。
例如:DNS系统将计算机名和IP地址进行关联。
文件系统将文件名和文件句柄进行关联等等
Name 名称
要在命名系统中查找对象,需要提供对象的名称。
对象的名称就是用来标识该对象的易于人理解的名称。
例如:
DNS系统用机器名来表示IP地址。
文件系统用文件名来标识文件对象。
Naming Convention 命名规范`
一个命名系统中的所有名称必须遵循的语法规则称为命名规范。
例如:UNIX文件系统的命名规范要求文件名是一个相对于根目录的路径,
路径中的每一部分以/分隔。如:/usr/bin。
Binding 绑定
一个名称和一个对象的关联称为一个绑定。
例如:文件系统中,文件名绑定到文件。DNS系统中,机器名绑定到IP地址。
Reference 引用
在一些命名服务系统中,系统并不是直接将对象存储在系统中,而是保持对象的引用。引用包含了如何访问实际对象的信息。
Address 地址
引用通常用一个或多个地址(通信端口)来表示。
Context 上下文
一个上下文是一系列名称和对象的绑定的集合。每个上下文都有与之关联的命名规范。一个上下文通常提供一个lookup操作来返回对象,也可能提供绑定,解除绑定,列举绑定名等操作。一个上下文中的名称可以绑定到一个具有相同命名规范的上下文中,称之为子上下文(subcontext)。
例如:在文件系统中,/usr是一个Context,/usr/bin是usr的subcontext。
Naming System 命名系统
一个相同类型的Context的集合。
一个命名系统向客户提供命名服务来执行命名相关的操作。
如DNS系统,LDAP系统(电话簿)等。
(DNS实质:域名地址转为IP地址;
将域名和IP地址相互映射的一个分布式数据库;
域名服务器是指保存有该网络中所有主机的域名和对应IP地址;
域名解析服务器:域名解析
)
目录服务的相关概念
Directory Service 目录服务
目录服务是命名服务的扩展,除了提供名称和对象的关联,还允许对象具有属性。目录服务中的对象称之为目录对象。目录服务提供创建、添加、删除目录对象以及修改目录对象属性等操作。
Attribute 属性
一个目录对象可以包含属性。一个属性具有一个属性标识符和一系列属性值。
例如:一个打印机对象可以包含速度、分辨率等属性。
分辨率的属性标识是resolution,属性值可能是300dpi,600dpi等等。
Search Filter 查找过滤器
目录服务除了通过名称查找对象的操作,通常还提供通过目录对象的属性来查找对象的操作。这种的查找一般通过规定的表达式来表示,称之为查找过滤器。
JNDI服务
JNDI is an API specified in Java technology that provides naming and directory functionality to applications written in the Java programming language.
It is designed especially for the Java platform using Java's object model.
Using JNDI, applications based on Java technology can store and retrieve named Java objects of any type.
In addition, JNDI provides methods for performing standard directory operations, such as associating attributes with objects and searching for objects using their attributes.
JNDI是用Java技术提供的一组的API,它为用Java编写的应用程序提供命名服务和目录服务功能。
它是为Java平台使用Java对象模型特别设计出来;
使用JNDI,基于Java的应用程序就可以存储和检索任何类型的Java对象了。
另外,JNDI为执行标准的目录服务操作提供方法,例如为对象关联属性,利用属性查找对象。
JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。
通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,
同时返回数据库连接建立所必须的信息。
JNDI主要有两部分组成:应用程序编程接口和服务供应商接口。
应用程序编程接口提供了Java应用程序访问各种命名和目录服务的功能,
服务供应商接口提供了任意一种服务的供应商使用的功能。
代码示例: try{ Context cntxt = new InitialContext(); DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt"); } catch(NamingException ne){ ... }
JNDI架构
JNDI架构提供了一个标准的、与命名系统无关的API,这个API构建在特定于命名系统的驱动程序之上。这一层帮助把应用程序和实际的数据源隔离开来,因此无论应用程序是访问LDAP、RMI、DNS还是其他的目录服务,这都没有关系。换句话说,JNDI与任何特定的目录服务实现无关,您可以使用任何目录,只要您拥有相应的服务提供程序接口(或驱动程序)即可
注意,关于JNDI有一点很重要,即它同时提供应用程序编程接口(Application Programming Interface ,API)和服务提供程序接口(Service Provider Interface ,SPI)。这样做的实际意义在于,对于您的与命名或目录服务交互的应用程序来说,必须存在用于该服务的一个JNDI服务提供程序,这便是JNDI SPI发挥作用的舞台。一个服务提供程序基本上就是一组类,这些类针对特定的命名和目录服务实现了各种JNDI接口——这与JDBC驱动程序针对特定的数据系统实现各种JDBC接口极为相似。作为一名应用程序开发人员,您不需要担心JNDI SPI.。您只需确保,您为每个想使用的命名或目录服务提供了一个服务提供程序。
(个人理解:所谓的JNDI SPI也就是我们不同的数据库连接需要不同的驱动程序。如连接oracle和连接Sql Server就需要把不同的驱动程序放到应用服务器的lib下)
分享到:
相关推荐
在这个项目中,结合了Maven进行依赖管理,并且使用了JNDI(Java Naming and Directory Interface)和JDBC(Java Database Connectivity)来处理数据库连接。 Spring框架是这个项目的核心,版本为5.0.4。Spring 5.0...
#### 二、JNDI与JDBC对比 JNDI作为JDBC的一种补充,主要优势在于: 1. **资源管理**:JNDI可以统一管理和查找应用程序中的各种资源,包括数据源。 2. **灵活性**:通过JNDI,开发者可以在不修改代码的情况下更改...
JDBC的主要功能包括与数据库建立连接、发送SQL语句以及处理数据库返回的结果。 #### JDBC的主要功能 1. **建立数据库连接**:JDBC允许Java程序通过标准的接口与数据库建立连接,这为开发者提供了极大的便利。 2. *...
在实际应用中,JNDI技术与JDBC技术都是为开发人员提供编程接口的一种技术,对元数据进行高效访问、存储与管理。但JNDI与JDBC技术谓使用者的提供对象不同,JDBC技术主要是开发人员接对象的获取,从而实现数据库操作;...
标题与描述中的关键词“JNDI的数据库连接”指向了Java命名和目录接口(Java Naming and Directory Interface,简称JNDI)与Java数据库连接(Java Database Connectivity,简称JDBC)结合使用的一种高级数据库访问...
Java Database Connectivity(JDBC)是Java编程语言与各种数据库交互的标准接口。JDBC允许开发者用Java编写数据库应用程序,无论数据库管理系统(DBMS)是何种类型。本篇将详细讲解使用JDBC进行数据库操作的不同方法,...
在Java中,实现通用DAO通常涉及到JDBC(Java Database Connectivity)和JNDI(Java Naming and Directory Interface)两种不同的数据库连接方式。 首先,让我们来详细了解一下JDBC。JDBC是Java中用于与关系型数据库...
在IT行业中,JDBC(Java Database Connectivity)、JNDI(Java Naming and Directory Interface)和Servlet是Java Web开发中的三大核心技术,它们各自承担着不同的职责,共同构建了强大的Web应用程序。 首先,JDBC...
在线购物程序代码及数据库文件(JDBC连接池+Struts)是典型的Web应用程序开发实例,主要涉及了Java ...这样的实例对于Java Web开发者来说,是一份宝贵的参考资料,有助于提升对MVC框架和数据库管理的理解与实践能力。
当`myApp`启动时,Tomcat会自动创建与`myApp`对应的ClassLoader,并通过`ContextBindings`将`jdbc/myDataSource`与该ClassLoader绑定。然后,在应用中,可以使用以下代码来获取数据源: ```java Context initCtx = ...
本文将详细介绍如何在Tongweb5中配置JDBC连接池,以及Web应用如何通过JNDI(Java Naming and Directory Interface)查找并使用这些数据源。 首先,我们需要了解JDBC连接池的基本原理。JDBC连接池是在应用启动时预...
### Tomcat5 配置 MySQL JDBC 数据库连接池 (JNDI 方式) #### 一、概述 在本文档中,我们将详细介绍如何在Tomcat5环境下配置MySQL数据库连接池,采用的是Java命名与目录接口(JNDI)的方式。这种方式不仅适用于...
"jdbc连接数据库(jndi连接池)"这个主题涉及了几个关键的技术概念,包括Java Database Connectivity (JDBC),Java Naming and Directory Interface (JNDI)以及连接池技术。下面将详细阐述这些知识点。 1. JDBC:...
6. **JNDI与JDBC**:JDK1.8增强了JNDI(Java Naming and Directory Interface)和JDBC(Java Database Connectivity)的功能,Tomcat可以利用这些改进更好地管理数据源和数据库连接。 7. **性能监控**:JDK1.8提供...
在Java EE环境中,JNDI通常与应用服务器集成,允许应用通过名字查找预配置的资源,如数据源。 数据源(DataSource)是JDBC的一个接口,它负责管理数据库连接。使用数据源的好处包括连接池管理、事务支持和自动关闭...
- 确保JDBC驱动与数据库版本兼容。 - 配置数据源时,避免使用硬编码的数据库连接信息,以提高应用的可移植性和安全性。 - 根据应用需求调整连接池参数,防止资源耗尽。 - 关注数据源的监控和日志,以便于故障...
8. **JNDI与EJB和JDBC**:在Enterprise JavaBeans (EJB) 中,JNDI用于查找和注入EJB实例。在Java Database Connectivity (JDBC) 中,数据源通常通过JNDI查找来获取,这样可以轻松地在不同环境中配置数据库连接。 9....
tomcat jndi 的困惑 Cannot create JDBC driver of class '' for connect URL 'null'