首页 > 代码库 > JNDI--Java命名和目录接口
JNDI--Java命名和目录接口
JNDI主要用于在容器中配置某些资源,让所有项目可以使用。
JNDI可以提供:
1:数据库连接池。
自定义连接池
第三方连接池
Dbcp
C3p0
JNDI
2:邮件服务器定义。
3:加载任意的类,让所有项目都可以使用。
JNDI:[定义在tomcat容器中,所有项目必须要通过查找的方式获取这个服务Javax.naming.Context 环境(ENV)上下文。
它的一个了类:InitialContext
配置JNDI,不用发布项目
1、配置tomcat/conf/server.xml
1 <Context path="/aaa" docBase="D:\\Adnroid\\Workspaces\\day25\\WebRoot"> 2 <Resource name="jdbc/mysql" auth="Container" //name--JNDI名称 auth--JNDI拥有者3 type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"4 url="jdbc:mysql:///bookstore?characterEncoding=UTF8"5 username="root" password="mysql" maxActive="10" maxIdle="30"6 maxWait="-1"/>7 </Context>8</Host>
2、将mysql-connection.jar放到tomcat/lib目录下
3、在java项目中引用 在代码中直接查询这个jndi:
1 //1、声明上下文环境 2 Context ctx=new InitialContext(); 3 //2、查找apache环境 4 ctx= (Context) ctx.lookup("java:/comp/env"); 5 //3、从环境中查找JNDI 6 Object obj= ctx.lookup("jdbc/mysql"); 7 /*第2,3步可以合成为obj=ctx.lookup("java:/comp/env/jdbc/mysql");*/ 8 //4、测试 9 DataSource ds=(DataSource) obj;10 Connection conn=ds.getConnection();11 System.err.println(conn);
注:
一般来说不会修改/server.xml,会在
目录下新建“项目名称.xml”,在里面插入第1步中的代码
标准DBUtils的写法
1 public class DatasourceUtils { 2 private static DataSource ds; 3 static{ 4 try{ 5 Context ctx = new InitialContext(); 6 ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mysql"); 7 }catch(Exception e){ 8 e.printStackTrace(); 9 }10 }11 public static DataSource getDs(){12 return ds;13 }14 }
JNDI--Java命名和目录接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。