配置JNDI连接池详解
需积分: 13 84 浏览量
更新于2024-11-01
收藏 2KB TXT 举报
"本文将详细解释JNDI配置的相关知识,包括在Apache Tomcat服务器中配置JNDI数据源的步骤以及相关参数的含义。"
Java Naming and Directory Interface (JNDI) 是Java平台中一个标准的API,用于在命名和目录服务中查找和绑定对象。它提供了一个统一的接口来访问各种类型的命名和目录服务,如LDAP、DNS等。在Web应用程序中,JNDI常被用来管理数据源,如数据库连接池,以便于在多个应用之间共享和管理数据库资源。
在上述的JNDI配置示例中,我们看到的是在Apache Tomcat服务器的`context.xml`文件中的配置,该文件通常位于`$CATALINA_BASE/conf/Catalina/localhost`目录下,其中`$CATALINA_BASE`是Tomcat的安装目录。
首先,`<Context>`元素定义了一个名为"/JSP"的应用上下文路径,这意味着所有在这个路径下的请求都将由这个配置文件所对应的Web应用处理。`docBase`属性指定了Web应用的根目录。
接下来,`<Resource>`元素是用来声明一个全局的JNDI资源。资源名称为"jdbc/demo",这意味着在应用程序中可以通过这个名字来查找这个数据源。`scope`属性设置为"Shareable",表示这个数据源可以被多个Web应用共享。`type`属性设为`javax.sql.DataSource`,表明这是一个数据库数据源。
在`<ResourceParams>`元素内,通过`<parameter>`元素定义了数据源的详细配置。这些参数包括:
- `factory`: 指定数据源的工厂类,这里是`org.apache.commons.dbcp.BasicDataSourceFactory`,这是Apache Commons DBCP库提供的数据源实现。
- `url`: 数据库的连接URL,这里是`jdbc:mysql://localhost/demo`,表示连接到本地的MySQL服务器上的"demo"数据库。
- `driverClassName`: 数据库驱动类名,这里是`com.mysql.jdbc.Driver`,对应MySQL的JDBC驱动。
- `password`和`username`: 数据库的用户名和密码,分别设置为"admin"和"12345"。
- `maxWait`: 当所有连接都被占用时,新的请求等待连接的最大时间(以毫秒计),如果超过这个时间还没获取到连接,则抛出异常。这里设置为3000毫秒,即3秒。
- `maxIdle`: 最大空闲连接数,设置为0表示没有限制空闲连接,但根据DBCP的文档,设置为0可能导致内存泄漏,一般会设置一个合理的非零值。
- `maxActive`: 最大活动连接数,设置为100,即允许的最大并发数据库连接数。
这样的配置使得应用程序可以通过JNDI查找机制,以"jdbc/demo"为键来获取预配置的数据库连接池,从而方便地进行数据库操作,同时避免了在代码中硬编码数据库连接信息,提高了代码的可维护性和安全性。
151 浏览量
165 浏览量
193 浏览量
2008-04-23 上传
292 浏览量
199 浏览量
141 浏览量
200 浏览量