`

JNDI笔记

阅读更多
JNDI服务是WEB容器提供的服务。WEB应用可以通过JNDI服务从容器中得到各种组件(包括但不限于数据源),实现各组件的解耦。

以下举一个例子。

在tomcat的conf/server.xml中配置:
<Context path="/jndi"> 

    <Resource name="bean/MyBeanFactory" auth="Container" 
            type="com.huawei.jndi.bean.MyBean" 
            factory="org.apache.naming.factory.BeanFactory" 
            bar="23"/> 

</Context> 

上面就在tomcat中声明了一个组件,接下来在代码中可以获取这个组件:
        try
        {
            Context initContext = new InitialContext();
            Context envCtx = (Context) initContext.lookup("java:comp/env");
            MyBean bean = (MyBean) envCtx.lookup("bean/MyBeanFactory");
            System.out.println(bean.getBar());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

总结:在tomcat中配置jndi组件,然后在代码中获取已配好的组件。

各WEB容器的JNDI实现类是不同的,比如在JBOSS中,JNDI提供类是org.jnp.interfaces.NamingContextFactory,与tomcat是不同的。

这样看来,JNDI的作用和spring的依赖注入倒是差不多。但是通过JNDI,可以实现跨应用,甚至跨域获取组件。在服务器A上配置的组件,在另一台服务器B上,可以通过JNDI获取到。

spring也提供了对jndi的封装,使用起来更加方便,以下是一个例子。
<!-- JNDI模板 -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
	<property name="environment">
		<props>
			<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
			<prop key="java.naming.provider.url">10.137.96.212:18199</prop>
			<prop key="java.naming.factory.url.pkgs">org.jnp.interfaces:org.jboss.naming</prop>
		</props>
	</property>
</bean>

<!-- 创建连接工厂 -->
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
	<property name="jndiTemplate" ref="jndiTemplate" />
	<property name="jndiName" value="TopicConnectionFactory" />
</bean>

先声明JndiTemplate,配置好目标地址、JNDI服务提供类。然后通过JndiObjectFactoryBean,就可以很方便地获取JNDI组件,并进行类型转换。
分享到:
评论

相关推荐

    初学jndi笔记

    ### JNDI基础及其在J2EE中的应用 #### 一、JNDI概述 **JNDI**(Java Naming and Directory Interface)是Java平台的一部分,用于开发与名称和服务目录进行交互的应用程序。它允许Java应用程序查找并使用远程对象和...

    DBCP 数据库连接池JNDI连接 学习笔记

    这篇“DBCP 数据库连接池JNDI连接 学习笔记”主要探讨了如何结合JNDI(Java Naming and Directory Interface)来使用DBCP进行数据库连接管理。JNDI提供了一种标准的方式来查找和绑定资源,如数据源,在企业级应用中...

    servlet学习笔记_JNDI.doc

    ### JNDI (Java Naming and Directory Interface)学习笔记 #### 一、JNDI简介 JNDI(Java Naming and Directory Interface),即Java命名和目录接口,是在分布式计算环境中使用的一种标准化接口,它允许Java应用...

    Tomcat学习笔记 - 【使用JNDI数据源】

    【标题】"Tomcat学习笔记 - 使用JNDI数据源" 在Java应用服务器如Tomcat中,使用JNDI(Java Naming and Directory Interface)数据源是一种标准的方式,它允许我们集中管理和配置数据库连接,提高应用的可移植性和可...

    李兴华--J2EE核心框架 笔记

    笔记可能涉及JNDI的基本操作和在J2EE应用中的应用场景。 6. **JTA(Java Transaction API)**:JTA为分布式事务处理提供了标准接口,确保在多组件环境中的数据一致性。笔记可能会讲解事务的ACID属性和JTA的使用方法...

    JAVA WEB学习笔记

    【JAVA WEB学习笔记】——Tomcat中数据源的配置与使用 在Java Web开发中,数据源(DataSource)是管理数据库连接的关键组件。它提供了一种高效、灵活的方式来获取和管理数据库连接,尤其是在大型企业级应用中。...

    javaweb笔记+狂神+知识总结

    7. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一种标准的方式来查找和访问各种命名和目录服务,常用于在JavaWeb应用中查找数据库连接池、邮件服务器配置等资源。 8. **DAO(Data Access Object...

    JAVAWEB开发实战经典(课堂笔记)

    5. **Java EE相关技术**:包括JNDI(Java Naming and Directory Interface)、JTA(Java Transaction API)和JMS(Java Message Service)等,这些在企业级Java应用中广泛使用,笔记可能涉及这些技术的基本概念和...

    基于j2ee开发的web笔记

    这个压缩包很可能包含了多个文件,如HTML、PDF或Markdown格式的笔记文档,它们可能分别对应J2EE的不同组件和技术,如Servlet、JSP、EJB、JNDI、JTA、JMS、JPA等。这些文件可能按照课程章节或主题进行组织,以便读者...

    java web 笔记整理

    这份"java web 笔记整理"涵盖了该领域的关键概念和技术,包括Servlet、JSP、MVC模式、JNDI、JTA以及EJB等核心内容。以下是根据笔记内容整理出的知识点详解: 1. **Servlet**:Servlet是Java平台上的服务器端组件,...

    达内java笔记,精挑细选(达内助教整理)

    6. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一个统一的接口来查找和管理网络资源,如EJB、数据库连接等。 在"达内笔记(达内助教整理的)"中,你可能会发现以下内容: - **基础篇**:Java...

    Javaee课堂笔记精华总结就业必备

    8. **JNDI(Java Naming and Directory Interface)**:JNDI为Java应用提供了一种查找和管理资源的接口,如EJB、数据源等。 9. **JAX-RS(Java API for RESTful Web Services)**:JAX-RS是JavaEE中的RESTful服务...

    MLDN李兴华视频教程学习笔记j2ee web.rar

    学习笔记会讲解如何通过JNDI查找和管理这些服务。 5. **JTA(Java Transaction API)和JPA(Java Persistence API)**:JTA提供了一种统一的事务管理机制,确保多操作的原子性。JPA则简化了对象关系映射(ORM),...

    Servlet学习笔记3

    ### Servlet学习笔记3:深入理解Servlet...综上所述,本学习笔记涵盖了Servlet技术的核心概念、Tomcat服务器配置、JNDI和数据源管理以及Java EE架构的概览,是Java Web开发者深入理解和掌握Servlet技术的重要参考资料。

    软件工程师学习笔记J2EE

    此外,笔记可能还会涉及到其他J2EE相关技术,如JNDI(Java Naming and Directory Interface)、JPA(Java Persistence API)、JSF(JavaServer Faces)、CDI(Contexts and Dependency Injection)等,以及如何使用...

    魔乐科技 J2EE详细笔记 很经典的

    3. JNDI(Java Naming and Directory Interface):服务发现和绑定,用于查找和访问各种资源。 通过学习《魔乐科技 J2EE详细笔记》,开发者可以深入了解J2EE的各个层面,掌握企业级应用开发的必备技能。这份笔记...

    jsp自制详细笔记

    Java Web开发是基于Java技术栈进行Web应用程序开发的一系列技术和框架的集合,除了JSP和Servlet,还可能涉及到Java EE规范、MVC模式、DAO设计模式、JNDI、JTA等概念。 【压缩包子文件的文件名称列表】暗示了学习...

    韩顺平JSP学习笔记+源代码

    2. **Java命名和目录接口(JNDI)** - 提供了一种查找和访问应用程序中的命名和目录服务的方式,常用于查找数据库连接等资源。 3. **企业JavaBeans(EJB)** - EJB是面向服务器端的中间件组件模型,用于开发和...

Global site tag (gtag.js) - Google Analytics