Java Naming and Directory Interface (JNDI) 数据源详解

需积分: 19 0 下载量 142 浏览量 更新于2024-08-18 收藏 2.36MB PPT 举报
"JNDI与数据源是Java应用程序中用于管理和查找资源的重要技术。JNDI,全称为Java Naming and Directory Interface,它允许开发者在Java应用中访问名字服务器,以便将名字与服务对象绑定,并提供通过名字访问这些对象的方式。名字服务的主要目标是为一组数据生成标准的名字,例如互联网上的域名系统。JNDI服务提供者是一系列Java类,它们充当了访问目录服务的桥梁,类似于JDBC用于数据库访问。 在使用JNDI时,需要先有一个JNDI服务提供者。Context是JNDI的核心概念,它存储了一系列名字到对象的绑定信息,并提供了操作这些绑定的方法。InitialContext是所有JNDI操作的起点,就像访问文件系统时需要指定文件路径一样。创建InitialContext时,通常需要设置Context.INITIAL_CONTEXT_FACTORY和Context.PROVIDER_URL这两个属性,以指定使用的JNDI实现和服务器地址。 查找对象是通过Context对象的lookup()方法完成的,传入的参数是JNDI名称,返回的是绑定到该名称的对象。例如,可以查找名为“datasource”的DataSource对象:`DataSourceds=(DataSource)ctx.lookup("datasource");` 绑定对象则使用Context的bind()方法,将一个名字与对象关联起来。如`ctx.bind(“datasource”);`这会将“datasource”这个JNDI名称与特定的对象绑定。 如果需要更改已绑定的名称对应的对象,可以使用rebind()方法,它会删除旧的绑定并创建新的绑定,从而重新建立名称与对象的关系。 在实际应用中,特别是在企业级Java应用服务器中,JNDI常用于配置数据源,例如Oracle Thin驱动方式的数据库连接。配置数据源时,需要定义连接属性,设定JNDI名称(这个名称可以用来通过lookup方法获取DataSource),并指定要管理的连接池名称。这样,应用就可以通过JNDI找到数据源,进而创建数据库连接,提高了应用程序的可扩展性和可维护性。"