zoukankan      html  css  js  c++  java
  • JNDI(Java Naming and Directory Interface,Java命名和目录接口)

    JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。目录服务是命名服务的一种自然扩展。两者之间的关键差别是目录服务中对象不但可以有名称还可以有属性(例如,用户有email地址),而命名服务中对象没有属性。

    JNDI是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。现在JNDI已经成为J2EE的标准之一,所有的J2EE容器都必须提供一个JNDI的服务。

      JNDI这个概念之前没有接触过,因为学习一个新的项目,发现它是将与数据库连接的信息写在tomcat目录下context.xml中的,然后在spring中配置来获取数据库连接信息。

     在context.xml中添加Resource节点

    <Resource auth="Container" description="DB Connection" 
             name="jdbc/xxx"
             driverClass="com.mysql.jdbc.Driver"
             jdbcUrl="jdbc:mysql://192.168.1.1:3306/www"
             user="root" password="password"
             maxPoolSize="10" 
             minPoolSize="1" 
             acquireIncrement="1" 
             idleConnectionTestPeriod="60"
             preferredTestQuery="select 1"
             factory="org.apache.naming.factory.BeanFactory" 
             type="com.mchange.v2.c3p0.ComboPooledDataSource" 
            />

    在spring配置文件中设置

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="java:comp/env/jdbc/xxx" />  <!-- java:comp/env/是一个J2EE环境的定义,jdbc/xxx是上面Resource定义的name -->
     </bean>

    <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
    </bean>

    通常情况下,还是在项目中写配置文件,然后去读。使用JNDI的情况:如果在tomcat中部署了很多应用,应用都需要使用同一个数据库。

    参考

    Tomcat 6 --- JNDI详解

    对java:comp/env的研究
      

  • 相关阅读:
    我的openwrt学习笔记(四):OpenWrt源码下载
    算法系列之“汉若塔”
    尖峰在线Oracle OCM实战 --开创国内Dtrace先河!
    Android开发屏幕适配知识点
    【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引
    PHP重载
    作为一个在城市打拼的人。
    关于马云最帅的照片是哪一张?!你们感受下!哈哈哈哈!(10P)
    Banana PI (香蕉派) 安装 ubuntu-core-14 最小核心的操作步骤
    (转载)偏序集的Dilworth定理学习
  • 原文地址:https://www.cnblogs.com/blog-cq/p/jndi.html
Copyright © 2011-2022 走看看