zoukankan      html  css  js  c++  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 }
  • 相关阅读:
    数据库
    java语法
    《Lucene实战(第2版)》 配书代码在IDEA下的编译方法
    lucene学习
    社交关系调研(费)
    微博开发平台java SDK demo学习之examples(demo)
    微博开发平台java SDK demo学习之friendships
    F. Classical? (数论 + 思维 + 推理 + 容斥)
    石子合并问题,经典区间DP
    luoguP2048 [NOI2010]超级钢琴
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4170564.html
Copyright © 2011-2022 走看看