JNDI
来源:互联网 发布:数据挖掘跟gis的关系 编辑:程序博客网 时间:2024/05/17 02:01
1.什么是JNDI?
(1)JNDI的全称是Java Naming and Directory Interface(Java命名和目录接口)。
(2)它是一组在Java应用中访问命名和目录服务的API。
(3)通过名称将资源与服务进行关联
2.JNDI的作用
JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置、易于部署。
有了JNDI之后,程序员在开发项目时,在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称;然后,在程序中,通过数据源名称引用数据源从而访问后台数据库。那么程序就可以不用具体关心JDBC的参数了。
3.JNDI的优点
(1)包含了大量的命名和目录服务,使用通用接口来访问不同种类的服务
(2)可以同时连接到多个命名或目录服务上
(3)建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必指导对象或资源的物理ID
Tomcat JNDI:可以参考Tomcat的文档学习
Windows JNDI:要先导两个jar包(Windows文件目录服务包)到项目的lib里面
<1>获取Window某个目录下所有的文件 context.list("");
<2>读取某一个文件 context.lookup("fileName");
具体代码:
package com.zking.test;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NameClassPair;import javax.naming.NamingEnumeration;import javax.naming.NamingException;public class TestWindowsJNDI {public static void main(String[] args) {Hashtable<String,String> environment=new Hashtable<String, String>();//1.windows 中有一个工厂environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");//2.执行目录(细节:加协议 file:///)environment.put(Context.PROVIDER_URL, "file:///C:\\Windows");//获取某个文件夹下所有的文件和文件夹try {Context context=new InitialContext(environment);// File file=(File) context.lookup("WindowsUpdate.log");// BufferedReader br=new BufferedReader(new FileReader(file));// String str=null;// while((str=br.readLine())!=null){// System.out.println(str);// }NamingEnumeration<NameClassPair> namingEnumeration=context.list("");int i=0;while(namingEnumeration.hasMore()){i++;NameClassPair nameClassPair=namingEnumeration.next();System.out.println(nameClassPair.getName()+":"+nameClassPair.getClassName());}System.out.println(i);} catch (Exception e) {e.printStackTrace();}}}
自定义JNDI
<1>将对象写入到自定义的JNDI中 context.bind();
<2>在自定义的JNDI中,删除某一个对象 context.unbind();
<3>在自定义的JNDI中获取某一个对象 context.lookup();
<4>从自定义的JNDI中获取所有对象 context.list();
- JNDI
- JNDI
- jndi
- JNDI
- JNDI~~~~
- JNDI
- JNDI
- JNDI
- JNDI
- JNDI
- JNDI
- JNDI
- JNDI
- jndi
- JNDI
- JNDI
- JNDI
- jndi
- 谈一谈拦截导航控制器返回事件(上)——OPP
- 开发必备---你应该知道的一些 ADB 命令 144 作者 LooperJing 关注 2016.11.27 11:45* 字数 1548 阅读 1106评论 2喜欢 39 版权声明:本文为Loop
- php 缓存类
- Vue的批量删除
- html中常用的标签-表单标签
- JNDI
- 使用 Docker Toolbox 自动创建 Swarm 集群+Portainer 图形化管理的脚本
- ViewPager系列之 仿魅族应用的广告BannerView
- 淘淘商城系列——生成订单
- 利用一个Demo说明Castle+NHibernate的实现
- AngularJS 入门5-依赖注入
- Tensorflow-高级封装tflearn
- js解析json读取List中的实体对象示例
- AngularJS 入门6-路由