以前一直接触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
专门为守侯线程所设计,面对各种各样的的请求,都能抓住处理掉,并且面对各种请求都能一一满足。现在我只希望ServiceWrapper能够
满足我一种请求那就是--有没有吃的,我好饿!有没有人请吃饭啊!我饿死了!
其实还是很简单的。
分享到:
相关推荐
这个"JNDI简单应用示例"可能是演示如何使用JNDI进行基本操作的代码实例,例如: 1. **初始化Naming Context**:首先,你需要创建一个初始上下文(InitialContext),这是所有JNDI操作的起点。这通常通过传递一个...
它使用`org.apache.naming.NamingContext`作为其上下文实现,这使得开发者可以通过简单的JNDI调用来访问配置的资源。 ##### 2.2 Tomcat中的JNDI实现 Tomcat通过`org.apache.naming.ContextBindings`类实现了JNDI中...
1. **理解Naming和Directory的区别**:Naming服务主要是用来管理简单的名字到对象的映射,而Directory服务则可以存储和检索更复杂的对象,包括属性和层次结构。 2. **JNDI API的使用**:熟悉`Context`接口以及`...
**Java Naming and Directory Interface...以上就是JNDI的基本知识和应用场景,通过理解和使用JNDI,开发者可以构建更加灵活、可扩展和易于管理的Java应用。在实际项目中,JNDI常常是Java EE开发者不可或缺的一个工具。
- **Name**:在JNDI中,名字是对象的唯一标识符,它可以是简单的字符串或者由多个组件组成的复合名字。 - **Naming Provider**:命名提供者是实现了JNDI接口的具体服务,负责实际的查找、绑定等操作。Java提供了...
JNDI,全称Java Naming and Directory Interface,是Java平台中的一个标准接口,它提供了一种在Java...提供的压缩包文件可能包含了详细步骤、示例代码或者配置模板,可以帮助你更好地理解和实践JNDI连接数据库的过程。
在本文中,我们将通过一个具体的示例来深入理解如何使用JNDI进行LDAP(Lightweight Directory Access Protocol)操作。 #### 二、JNDI与LDAP结合应用 LDAP是一种基于X.500标准的协议,用于构建和维护目录信息。在...
在Java EE(以前称为J2EE)环境中,Java Naming and Directory Interface (JNDI) 是一个重要的服务,它提供了一种标准的方式来...理解并熟练掌握JNDI的存储和读取机制,对于任何Java EE开发者来说都是至关重要的技能。
JNDI(Java Naming and Directory Interface)是Java平台中用于...理解并正确使用JNDI,可以极大地提高Java应用的灵活性、可维护性和安全性。在实际项目中,我们需要根据服务器环境和应用需求来配置和利用JNDI服务。
低耦合意味着模块之间的关系简单,易于理解和维护,而高耦合则可能导致代码难以修改和扩展。在设计系统时,通常追求低耦合高内聚的原则,以提高系统的可维护性和可复用性。耦合性可分为多种类型,如内容耦合、控制...
JNDI的出现使得应用可以与各种不同的命名和目录服务进行交互,如LDAP(轻量级目录访问协议)、DNS(域名系统)或者简单的文件系统。 ### 1. JNDI的基本概念 - **Naming Service**:命名服务,它允许将名字映射到...
2. **目录服务**:JNDI不仅支持简单的命名,还支持更复杂的目录服务,如LDAP(Lightweight Directory Access Protocol)。开发者可以通过JNDI查询目录中的信息,比如用户账号、组织结构等。 3. **上下文操作**:...
在"Test"这个压缩包文件中,可能包含了一些简单的示例代码,用于演示如何在实际项目中使用JDBC、JNDI和Servlet。这些示例可能涵盖了数据库连接、查询、JNDI查找数据源以及Servlet接收和响应HTTP请求的实现。通过学习...
你可以解压这个文件,导入到IDE中,运行并查看其配置和代码,以加深对JNDI配置的理解。 总结,配置Tomcat中的JNDI主要是为了方便和高效地管理数据库连接,通过在服务器端定义数据源,并在应用程序中通过JNDI查找和...
这些源码可以在Tomcat和Spring的GitHub仓库中找到,对于深入理解配置原理非常有帮助。 总的来说,配置Tomcat6.0的JNDI主要涉及到服务器端的全局资源定义和应用程序内部的资源引用,以及Spring框架如何利用JNDI查找...
EJB3是EJB规范的一个版本,它引入了许多改进,使得开发更加简单且更符合Java编程习惯。 标题“JNDI调用分布式EJB3 通用接口”意味着我们将探讨如何使用JNDI来查找和调用分布在不同节点上的EJB3组件。EJB3中的一个...
- **JNDI**:这可能是另一个文件或文件夹,可能包含了更深入的JNDI示例代码或教程文档,帮助用户通过实践来理解JNDI的工作方式。 总之,对于想要了解和学习JNDI的初学者来说,这个压缩包提供了很好的起点。通过阅读...
编写一个简单的Servlet或者JSP页面,尝试通过JNDI获取数据库连接并执行查询,以确保配置正确无误。 通过以上步骤,你已经在Eclipse、MySQL和Tomcat环境中成功配置了JNDI数据源。这种方式使得你的应用程序能够轻松...
总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...