J2EE的十三种技术——JNDI

本文详细介绍了JNDI(Java Naming and Directory Interface),作为J2EE技术的一部分,它提供了一种标准的Java命名系统接口,用于查找和访问各种命名和目录服务。文章通过配置数据源和程序引用的实例,展示了如何在实际应用中利用JNDI提高应用的配置和部署灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

    上一篇博客中介绍了J2EE的十三种技术之一——JDBC,主要用于提供了统一访问多种数据库的方式。这篇文章我们继续介绍J2EE的技术——JNDI。

JNDI:

     Java Naming and Directory Interface,Java命名和目录接口。作为技术规范之一,它提供了一种标准的Java命名系统接口。


    它为开发人员提供了查找和访问各种命名和目录服务通用、统一的接口,举个例子,比如我们翻书找一个知识点的时候,我们都会去看目录,通过目录的帮助,我们可以快速准确的找到所需要的东西。

    JNDI就类似于这个功能,如下图所示。




    JNDI是一种查找服务,可以用它来查找Web应用环境变量、EJBs、数据库连接池、JMS目标和连接工厂等。但不要将JNDI当作数据库使用,JNDI对象储存在内存中。

使用:

第一步:配置数据源

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/lw</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>rootpassword</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>
</datasources>


    第二步:在程序中引用

Connection conn=null;
try {
  Context ctx=new InitialContext();
  Object datasourceRef=ctx.lookup("java:MySqlDS"); //引用数据源
  DataSource ds=(Datasource)datasourceRef;
  conn=ds.getConnection();
  /* 使用conn进行数据库SQL操作 */
  ......
  c.close();
} 
catch(Exception e) {
  e.printStackTrace();
} 
finally {
  if(conn!=null) {
    try {
      conn.close();
    } catch(SQLException e) { }
  }
}

总结:

 JNDI 在 J2EE 中的角色就是“交换机”、“粘合剂”。J2EE 组件在运行时间接地查找其他组件、资源或服务的通用机制。J2EE 规范要求所有 J2EE 容器都要提供 JNDI 规范的实现。JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置、易于部署。

转载于:https://www.cnblogs.com/saixing/p/6730295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值