粗浅看 JNDI原理

2024-08-26 20:18
文章标签 原理 jndi 粗浅

本文主要是介绍粗浅看 JNDI原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

JNDI Java 命名和目录接口Java Naming and Directory InterfaceJNDI) 的简称。从一开始就一直是 Java 2 平台企业版的核心技术之一。在 JMSJMail,JDBC,EJB 等技术中,就大量应用的这种技术。JNDI 可访问的现有的目录及服务有:DNSXNam Novell目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)CORBA对象服务、文件系统、WindowsXP/2000/NT/Me/9x的注册表、RMIDSML v1&v2NIS

JNDI诞生的理由似乎很简单。随着分布式应用的发展,远程访问对象访问成为常用的方法。虽然说通过 Socket等编程手段仍然可实现远程通信,但按照模式的理论来说,仍是有其局限性的。RMI技术,RMI-IIOP 技术的产生,使远程 对象的查找成为了技术焦点。JNDI 技术就应运而生。JNDI 技术产生后,就可方便的查找远程或是本地对象。

架构

 

JNDI的架构与 JDBC的架构非常类似.JNDI 架构提供了一组标准命名系统的API,这些API JDK1.3 之前是作为一个单独的扩展包。jndi.jar(通过这个地址下 载),这个基础 API构建在与SPI 之上。这个 API提供如下五个包

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

在应用程序中,我们实际上只使到用以上几个包的中类.具体调用类及通信过程对用户来说是透明的.JNDI API 提供了访问不同 JNDI服务的一个标准的统一 的实现,其具体实现可由不同的 ServiceProvider来完成。前面讲的为第一层 JNDI API .最下层为 JNDI SPI API 及其具体实现。它包括了几个增强和下面的命名/目录服务提供者:

LDAP(Lightweight DirectoryAccess Protocol)服务提供者;

CORBACOSCommon ObjectRequest Broker Architecture Common Object Services)命名服务提供者;

RMI(Java Remote MethodInvocation)注册服务提供者 DNS(Domain NameSystem)服务提供者;

FSSP(File System Service Provider)文件系统服务提供者。

典型运用

数据源tomcat 中配置一个数据源,程序就可以通过 java.sql 接口去访问数据库,不管底层的数据库是什么类型。

业务思想

关于JNDI自己也是初步的理解,其目的也是方便的查找远程或是本地对象。自己在学习过程中一开始也是一头雾水,梳理一下思路分享在本博文中。如果大家有什么好的理解,请一定要交流一下。


这篇关于粗浅看 JNDI原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109574

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr