`

JNDI的理解

阅读更多

看了JNDI的实现,我感有点惊讶和一点迷惑,惊讶的是系统编程比应用编程就难度来说还真不好说,比如就象
实现JNDI,SUN已经定好了Interface,你要做的就是弄清楚整个功能的原理,然后去实现他,然而应用编程则没有
人为你定好Interface,你只能根据需求分析自己定好Interface,自己定好框架,但是这个框架能不能满足需求那就
不好说了,但是SUN定的规范可是肯定可以实现功能的,并且一般情况下你必须全部实现接口中的每一个函数,要不然,
人家说你又不符合他的规范,不能通过他的认证。好了下面我讲讲我读JNDI的经过。
JNDI的规范我大概的看了一下,大概知道了JNDI是干什么用的,实际上我的理解就是JNDI是一种服务,什么样的服务呢
,就是你给我一个字符串,我就给出对应字符串所对应的对象。那这东西有什么用呢?那我们不是经常在客户端写代码的
时候不是经常写 Context ctx = new InitialContext();Object obj = ctx.lookup("/ejb/LotteryEJB");这样类似的代码,
如果说"/ejb/LotteryEJB"是你刚才所说的字符串的话,那obj就应该是对应的对象,夷,这怎么好象有点象EJB的调用啊,
哈,哥哥你真是冰雪聪明,这就是EJB调用开始的时候调用JNDI服务的代码。原来就是这样啊,那实现这玩意不是太容易了,
弄一个HashMap的实例hm,把你要部署的字符和对象通过hm.put("/cs",对象)放进去,如果谁要查的时候就是把要查的字符
传过来,Object cs = hm.get("/cs"),CS就是要你要找的对象。CS?好啊,AK,M4,暴头....,我想暴头想了很久了,但是
这CS到底是我要暴头的人,还是和我一起暴头的人,还是已被我暴头的人呢?哈,告诉你吧,都是。根据JNDI的规范,这CS可以代表
对象,设备都可以,当然只要你愿意连MM都可以代表,真的,哪里有啊!我机子上好多啊---100多M的美女图片,哦我差点忘了,
文件也可以是JNDI服务所返回的东东。对了要是你问我MM图片怎么传到你的机子上面去,我只能告诉你,你可以通过socket传啊,
你传一个"/cs",我回传一个cs给你,就这么简单。好了,如果到目前为止你只对我的100M图片感兴趣的话呢,那你就不要往下看了,
你给我发E-MAIL,我告诉你哪里还有好多。
org.huihoo.jfox.jndi下面的ContextImpl是实现Context接口,但是很这个类不是实现真正JNDI功能的类,真正实现该功能就是
NamingServiceImpl类,NamingService不是SUN规范所规定的接口,但是他的函数和Context接口差不多,也就是说完成的是和
Context接口的功能差不多。也就是说NamingServiceImpl才是JNDI服务的提供者,而Context是客户端去调用JNDI服务的接口,那提起
服务的实现那大家都自然都想起了多线程,就想起了一个孤独的socket的实例fox在不停的listen,listen啊,但是他怎么等不到
"我要嫁给你"的字符串!fox不止一次的怀疑自己的实现的Runnable接口是否为倒版,并且还怀疑对方是不是找对了IP而发错了端口。
所以说为了能更好提供JNDI服务,NamingServiceImpl决定把自己交给ServiceWrapper包装一下,然后再对外发布,要知道ServiceWrapper
专门为守侯线程所设计,面对各种各样的的请求,都能抓住处理掉,并且面对各种请求都能一一满足。

分享到:
评论

相关推荐

    POJO javaBean EJB JNDI 理解及区别

    ### POJO、JavaBean、EJB与JNDI的理解及区别 #### POJO:Plain Old Java Object POJO,即“纯旧式Java对象”,它指的是最基础的Java类对象,没有任何框架约束,也不实现任何特定接口。POJO的主要特征是拥有私有...

    jndi-1_2_1.zip_jndi_jndi-1.2.1.jar

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问和管理命名和目录服务的一组...同时,由于是开源的,开发者可以根据需求对其进行定制和扩展,而且附带的文档和示例有助于快速上手和理解JNDI的使用。

    Tomcat中JNDI原理

    通过深入理解Tomcat中JNDI的实现原理,尤其是`ContextBinding`机制,我们可以更高效地管理和使用资源,同时增强应用的安全性和可维护性。尽管初看起来JNDI的代码可能显得冗长复杂,但这是为了提供灵活性、安全性和可...

    JNDIDemo 以及相关文档

    通过学习这些文档和实践`JNDIDemo`,你可以掌握JNDI的基本用法,理解其在企业级应用中的重要性,以及如何在实际项目中利用JNDI进行资源管理。这将有助于提升你的Java编程技能,特别是对于处理分布式系统和企业级Java...

    JNDI示例整合SSH

    **标题:“JNDI示例整合SSH”** 在IT领域,`JNDI`(Java Naming and Directory Interface)是...为了深入学习和实践,你可以解压并研究这些文件,结合文章链接中提供的详细教程,进一步理解JNDI在SSH框架中的应用。

    jndi所依赖的jar包

    Java Naming and Directory Interface (JNDI) 是Java平台中...总之,JNDI及其依赖的JAR包是Java开发中不可或缺的部分,尤其是在构建分布式和企业级应用时,理解和掌握JNDI的使用能极大地提高应用的可扩展性和灵活性。

    JNDI简单应用示例

    在这个压缩包文件"JNDI_Demo_0915"中,很可能包含了上述操作的代码示例,帮助开发者理解JNDI的工作原理和使用方式。通过阅读和学习这个示例,你可以掌握如何在实际项目中利用JNDI来管理和查找资源,提高代码的可维护...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all

    使用这样的工具有助于开发者理解和防范JNDI注入攻击,但同时也需谨慎,以免误用。 JNDI注入攻击的实施步骤大致如下: 1. **构造恶意JNDI引用**:攻击者创建一个指向远程服务器的JNDI URL,该URL中包含攻击者想要...

    技术专栏 _ 深入理解JNDI注入与Java反序列化漏洞利用.pdf

    在深入探讨JNDI注入与Java...随着技术的不断进步,攻击者也在不断发现新的漏洞,因此对安全研究人员和开发者而言,理解和掌握这些概念及攻击手段是非常重要的。这样,他们才能更好地保护自己的应用不受这些漏洞的威胁。

    jndi加密.zip

    为了便于理解和使用,压缩包中的"jndi加密"文件包含了具体的实现示例和使用说明。开发者可以根据提供的示例代码,结合自己的项目环境进行适配和调整。同时,需要注意的是,虽然JNDI和AES提供了一层保护,但安全工作...

    JNDI学习文档.doc

    **Java Naming and Directory Interface...以上就是JNDI的基本知识和应用场景,通过理解和使用JNDI,开发者可以构建更加灵活、可扩展和易于管理的Java应用。在实际项目中,JNDI常常是Java EE开发者不可或缺的一个工具。

    jndi测试小项目,初学者

    这个小项目是针对初学者设计的,旨在帮助他们理解JNDI的基本概念和用法。 在Java应用中,JNDI主要用来查找和绑定资源,如数据库连接池、邮件服务器配置、EJB对象等。它通过名字服务(Naming Service)和目录服务...

    JNDI.rar_JINI jndi_JNDI相关书籍_jndi

    **JNDI相关书籍** 对于深入理解和应用JNDI技术至关重要。这些书籍通常会涵盖以下主题: 1. **JNDI基础**:介绍JNDI的基本概念,包括命名空间、上下文、查找和绑定操作。 2. **JNDI实现**:讲解不同类型的JNDI提供商...

    配置 JNDI 数据源

    在Java应用开发中,JNDI(Java Naming and Directory Interface)是一种标准接口,用于查找和管理...通过理解JNDI的工作原理以及如何在Spring中配置和使用JNDI数据源,开发者能够更好地实现高效、安全的Java应用开发。

    从实例看JNDI设计

    通过理解和熟练运用JNDI,开发者可以更好地管理应用程序的资源,提高代码的灵活性和可维护性。在实际项目中,深入了解JNDI的工作原理和实践技巧,对于提升开发效率和解决复杂问题有着不可忽视的价值。

    jndi用到的所有jar

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种服务提供了一个统一的接口,使得...正确理解和使用这些JNDI相关库,能够帮助开发者构建更加灵活和可扩展的企业级应用。

    JNDI配置详细介绍

    #### 二、深入理解JNDI在Tomcat中的作用 JNDI在Tomcat中的配置不仅限于上述步骤,其真正的强大之处在于能够实现资源的集中管理和动态配置。通过JNDI,我们可以将应用程序与特定的资源实现解耦,即使资源的实现细节...

    jndi-jar.zip

    总之,JNDI-jar.zip压缩包提供的两个JAR文件是进行JNDI开发的基础组件,它们提供了对本地文件系统和JNDI服务管理的支持,对于理解和使用JNDI技术至关重要。理解并熟练运用JNDI,可以帮助开发者构建更加灵活和可扩展...

    jndi连接数据库配置方法

    JNDI,全称Java Naming and Directory Interface,是Java平台中的一个标准接口,它提供了一种在Java...提供的压缩包文件可能包含了详细步骤、示例代码或者配置模板,可以帮助你更好地理解和实践JNDI连接数据库的过程。

    04_JNDI.pdf

    根据提供的文档信息,我们可以深入探讨以下几个关键的知识点: ### JNDI概述 #### 定义 JNDI(Java Naming and Directory ...通过理解其基本概念和使用方法,可以帮助开发者更好地管理和组织应用中的各种资源和服务。

Global site tag (gtag.js) - Google Analytics