`
piziwang
  • 浏览: 239991 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Proxool采用Listener加载

    博客分类:
  • J2EE
阅读更多

摘自: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);
            }
        }
	}

}
 
分享到:
评论

相关推荐

    hibernate4.1.4中hibernate+Proxool无法实现加载Proxool的配置文件解决办法及jar包

    4. **Proxool配置文件**:有时候,Proxool需要一个单独的配置文件(如`proxool.properties`),如果你使用了这个文件,确保它被正确地加载并且包含有效的配置。 5. **编码问题**:如果配置文件是UTF-8编码,但系统...

    proxool listener

    标题“proxool listener”指的是Proxool监听器,这是一个与数据库连接池相关的概念。Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池解决方案。监听器是Proxool中用于监控数据库连接池...

    Proxool-0.9.1

    <listener-class>org.logicalcobwebs.proxool.configuration.ListenerConfigurator</listener-class> 与spring配合使用时,本加载需要放在spring前面 <listener> <listener-class>org.logicalcobwebs.proxool....

    proxool-0.9.1.jar,proxool-cglib.jar

    使用这些文件时,通常需要将它们添加到项目的类路径中,以便程序在运行时能够正确加载和使用。 总的来说,Proxool作为一个数据库连接池解决方案,对于提升Java应用的数据库访问性能和稳定性具有重要作用。而与CGLIB...

    proxool

    proxool数据库连接池

    proxool 的使用 配置

    标题 "proxool 的使用配置" 暗示我们将探讨一个名为 Proxool 的数据库连接池的配置和使用方法。Proxool 是一个轻量级、高效的开源 Java 数据库连接池,它提供了一种灵活的方式来管理和控制数据库连接。在这个主题中...

    oracle proxool jar jdbc jar包 proxool源码包 Java oracle proxool 实例

    在连接池的场景下,通常采用单例模式来确保整个应用只使用一个连接池实例,避免资源浪费。 在压缩包"oracle proxool for java"中,可能包含了以下内容: 1. Oracle Proxool的jar文件:这是运行时需要的库,包含...

    java项目使用 proxool

    在Java代码中,我们需要加载配置文件并初始化Proxool连接池。这可以通过`orgproxool.ProxoolFacade`类的静态方法完成: ```java Properties props = new Properties(); props.load(new FileInputStream("path/to...

    proxool配置参数说明及proxool-0.9.1相关jar包及spring配置方法

    **Proxool配置参数说明** Proxool是一个开源的数据库连接池实现,它提供了一种灵活的方式来管理和控制数据库连接。在使用Proxool时,理解其配置参数是至关重要的,这些参数可以调整连接池的行为,以适应不同应用...

    proxool-0.9.1.jar proxool_cglib-0.9.1.jar

    标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...

    hibernate3+ proxool-0.9.1配置 和proxool-0.9.1.jar

    标题中的“hibernate3+ proxool-0.9.1配置”涉及到的是在Java开发中,使用Hibernate3 ORM框架与Proxool连接池的整合配置。Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool...

    proxool连接池用户名密码加密

    使用Proxool的加密功能,开发者需要在程序启动时加载加密库,并且确保在应用程序的整个生命周期内,只有拥有正确密钥的组件才能解密这些数据。这需要谨慎处理密钥的存储和分发,以防止密钥泄露。 在实际应用中,...

    proxool-0.9.1.zip

    标题中的"proxool-0.9.1.zip"是一个压缩包文件,其中包含了与Proxool相关的组件。Proxool是Java的一个开源数据库连接池,它允许开发者在应用程序中更有效地管理和控制数据库连接。这个0.9.1版本可能是Proxool的一个...

    spring+proxool整合配置

    在上述代码中,我们首先定义了一个`DriverManagerDataSource`,用于加载JDBC驱动并创建到数据库的连接。然后我们创建了`SPoolDataSource`,这是Proxool的数据源实现,将之前在`proxool.properties`中定义的属性注入...

    proxool配置说明

    还需要在项目的`web.xml`文件中配置监听器,以便在应用启动时加载`proxool.xml`配置文件。示例如下: ```xml xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=...

    proxool与mybatis整合例子

    本文将深入探讨如何将`Proxool`数据库连接池与`Mybatis`持久层框架进行整合,无需依赖`Spring`框架。我们将讨论配置过程、核心概念以及整合的步骤。 首先,让我们了解`Proxool`。Proxool是基于Apache 2.0协议的一个...

    java使用proxool连接mysql数据库

    在这个例子中,我们首先加载了 `proxool.properties` 文件中的配置,然后创建了 `ProxoolDataSource` 实例,并设置了相应的属性。通过调用 `getConnection()` 方法,我们可以从连接池中获取一个数据库连接。在完成...

    spring+proxool配置spring+proxool配置

    而Proxool是Oracle公司开源的一个数据库连接池组件,它提供了高效的数据库连接管理,有助于减少数据库资源的消耗,提高系统性能。本篇文章将深入探讨如何在Spring框架中配置和使用Proxool。 首先,我们需要了解...

    oracle proxool jar jdbc jar包 proxool源码包 Java实现 oracle proxool 实例

    2. **加载配置**:在Java代码中,通过`orgproxool.ProxoolFacade`类加载配置文件,初始化连接池。 3. **获取数据库连接**:使用Proxool提供的API,如`PoolAlias.getConnection()`方法,从连接池中获取数据库连接。 4...

    Proxool.jar

    4. **初始化Proxool**:在应用启动时,Proxool会自动加载配置并初始化连接池。 在实际开发中,还需要考虑连接池的性能优化,如合理设置连接池大小,避免空闲连接过多或过少导致的问题。同时,监控Proxool的运行状态...

Global site tag (gtag.js) - Google Analytics