摘自:wangtao的spring+proxool解决方法:
package cn.wt.listener;
import java.io.File;
import java.util.Enumeration;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import org.logicalcobwebs.proxool.configuration.PropertyConfigurator;
/**
* @author wangtao
*/
public class ProxoolListener implements ServletContextListener
{
private static final Log LOG = LogFactory.getLog(ProxoolListener.class);
private static final String XML_FILE_PROPERTY = "xmlFile";
private static final String PROPERTY_FILE_PROPERTY = "propertyFile";
private static final String AUTO_SHUTDOWN_PROPERTY = "autoShutdown";
@SuppressWarnings("unused")
private boolean autoShutdown = true;
public void contextDestroyed(ServletContextEvent arg0)
{
System.out.println("destroy database pool....");
}
public void contextInitialized(ServletContextEvent contextEvent)
{
ServletContext context = contextEvent.getServletContext(); //对应servlet的init方法中ServletConfig.getServletContext()
String appDir = contextEvent.getServletContext().getRealPath("/");
Properties properties = new Properties();
Enumeration names = context.getInitParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
String value = context.getInitParameter(name);
if (name.equals(XML_FILE_PROPERTY)) {
try {
File file = new File(value);
if (file.isAbsolute()) {
JAXPConfigurator.configure(value, false);
} else {
JAXPConfigurator.configure(appDir + File.separator + value, false);
}
} catch (ProxoolException e) {
LOG.error("Problem configuring " + value, e);
}
} else if (name.equals(PROPERTY_FILE_PROPERTY)) {
try {
File file = new File(value);
if (file.isAbsolute()) {
PropertyConfigurator.configure(value);
} else {
PropertyConfigurator.configure(appDir + File.separator + value);
}
} catch (ProxoolException e) {
LOG.error("Problem configuring " + value, e);
}
} else if (name.equals(AUTO_SHUTDOWN_PROPERTY)) {
autoShutdown = Boolean.valueOf(value).booleanValue();
} else if (name.startsWith("jdbc")) { //此处以前是PropertyConfigurator.PREFIX改为jdbc,因为此源码是0.9.1版本的,与0.9RC3版本有点不一样
properties.setProperty(name, value);
}
}
if (properties.size() > 0) {
try {
PropertyConfigurator.configure(properties);
} catch (ProxoolException e) {
LOG.error("Problem configuring using init properties", e);
}
}
}
}
分享到:
相关推荐
4. **Proxool配置文件**:有时候,Proxool需要一个单独的配置文件(如`proxool.properties`),如果你使用了这个文件,确保它被正确地加载并且包含有效的配置。 5. **编码问题**:如果配置文件是UTF-8编码,但系统...
标题“proxool listener”指的是Proxool监听器,这是一个与数据库连接池相关的概念。Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池解决方案。监听器是Proxool中用于监控数据库连接池...
<listener-class>org.logicalcobwebs.proxool.configuration.ListenerConfigurator</listener-class> 与spring配合使用时,本加载需要放在spring前面 <listener> <listener-class>org.logicalcobwebs.proxool....
使用这些文件时,通常需要将它们添加到项目的类路径中,以便程序在运行时能够正确加载和使用。 总的来说,Proxool作为一个数据库连接池解决方案,对于提升Java应用的数据库访问性能和稳定性具有重要作用。而与CGLIB...
proxool数据库连接池
标题 "proxool 的使用配置" 暗示我们将探讨一个名为 Proxool 的数据库连接池的配置和使用方法。Proxool 是一个轻量级、高效的开源 Java 数据库连接池,它提供了一种灵活的方式来管理和控制数据库连接。在这个主题中...
在连接池的场景下,通常采用单例模式来确保整个应用只使用一个连接池实例,避免资源浪费。 在压缩包"oracle proxool for java"中,可能包含了以下内容: 1. Oracle Proxool的jar文件:这是运行时需要的库,包含...
在Java代码中,我们需要加载配置文件并初始化Proxool连接池。这可以通过`orgproxool.ProxoolFacade`类的静态方法完成: ```java Properties props = new Properties(); props.load(new FileInputStream("path/to...
**Proxool配置参数说明** Proxool是一个开源的数据库连接池实现,它提供了一种灵活的方式来管理和控制数据库连接。在使用Proxool时,理解其配置参数是至关重要的,这些参数可以调整连接池的行为,以适应不同应用...
标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...
标题中的“hibernate3+ proxool-0.9.1配置”涉及到的是在Java开发中,使用Hibernate3 ORM框架与Proxool连接池的整合配置。Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool...
使用Proxool的加密功能,开发者需要在程序启动时加载加密库,并且确保在应用程序的整个生命周期内,只有拥有正确密钥的组件才能解密这些数据。这需要谨慎处理密钥的存储和分发,以防止密钥泄露。 在实际应用中,...
标题中的"proxool-0.9.1.zip"是一个压缩包文件,其中包含了与Proxool相关的组件。Proxool是Java的一个开源数据库连接池,它允许开发者在应用程序中更有效地管理和控制数据库连接。这个0.9.1版本可能是Proxool的一个...
在上述代码中,我们首先定义了一个`DriverManagerDataSource`,用于加载JDBC驱动并创建到数据库的连接。然后我们创建了`SPoolDataSource`,这是Proxool的数据源实现,将之前在`proxool.properties`中定义的属性注入...
还需要在项目的`web.xml`文件中配置监听器,以便在应用启动时加载`proxool.xml`配置文件。示例如下: ```xml xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=...
本文将深入探讨如何将`Proxool`数据库连接池与`Mybatis`持久层框架进行整合,无需依赖`Spring`框架。我们将讨论配置过程、核心概念以及整合的步骤。 首先,让我们了解`Proxool`。Proxool是基于Apache 2.0协议的一个...
在这个例子中,我们首先加载了 `proxool.properties` 文件中的配置,然后创建了 `ProxoolDataSource` 实例,并设置了相应的属性。通过调用 `getConnection()` 方法,我们可以从连接池中获取一个数据库连接。在完成...
而Proxool是Oracle公司开源的一个数据库连接池组件,它提供了高效的数据库连接管理,有助于减少数据库资源的消耗,提高系统性能。本篇文章将深入探讨如何在Spring框架中配置和使用Proxool。 首先,我们需要了解...
2. **加载配置**:在Java代码中,通过`orgproxool.ProxoolFacade`类加载配置文件,初始化连接池。 3. **获取数据库连接**:使用Proxool提供的API,如`PoolAlias.getConnection()`方法,从连接池中获取数据库连接。 4...
4. **初始化Proxool**:在应用启动时,Proxool会自动加载配置并初始化连接池。 在实际开发中,还需要考虑连接池的性能优化,如合理设置连接池大小,避免空闲连接过多或过少导致的问题。同时,监控Proxool的运行状态...