`

Spring3, Hibernate3.6与Proxool连接池配置

阅读更多
鉴于Spring3.0不采用Servlet启动,改用listener,并且针对Mysql与DBCP连接池在linux服务器上超时连接的Bug,现简要地做Spring3与Proxool连接池的配置:

1.Web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<!--启动连接池-->
			<servlet>
				<servlet-name>ServletConfigurator</servlet-name>
				<servlet-class>
					org.logicalcobwebs.proxool.configuration.ServletConfigurator
				</servlet-class>
				<init-param>
					<param-name>xmlFile</param-name>
					<param-value>
						WEB-INF/proxool.xml
					</param-value>
				</init-param>
				<load-on-startup>1</load-on-startup>
			</servlet>

<!--启动spring(spring3.1)-->
			<context-param>
		<param-name>contextConfigLocation</param-name>

		<param-value>
			WEB-INF/classes/com/dx/bags/config/applicationContext.xml
		</param-value>
	</context-param>
	
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>

</web-app>

proxool.xml<位于WEB-INF目录下,与web.xml同目录>
[b]本文中由于有多数据库连接,于是,做了多个配置。alias分别为db12,db10,db5[/b]

<?xml version="1.0" encoding="UTF-8"?>
    <proxool-config>
    <proxool>
    <alias>db12</alias>
    <driver-url>jdbc:mysql://192.168.1.12:3306/dbname1</driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
    <property name="user" value="root" />
    <property name="password" value="*******" />
    </driver-properties>
       <maximum-new-connections>10</maximum-new-connections>
    <prototype-count>5</prototype-count>
    <test-before-use>true</test-before-use> 
	<test-after-use>true</test-after-use> 
	<house-keeping-sleep-time>60000</house-keeping-sleep-time>  
    <house-keeping-test-sql>select current_date from dual</house-keeping-test-sql>
    <maximum-connection-count>10</maximum-connection-count>
    <minimum-connection-count>2</minimum-connection-count>
    </proxool>
    
 <proxool>
    <alias>db10</alias>
    <driver-url>jdbc:mysql://192.168.1.10:3306/dbname2</driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
    <property name="user" value="root" />
    <property name="password" value="******" />
    </driver-properties>
      <maximum-new-connections>10</maximum-new-connections>
    <prototype-count>5</prototype-count>
  	<test-before-use>true</test-before-use> 
	<test-after-use>true</test-after-use> 
	 <house-keeping-sleep-time>60000</house-keeping-sleep-time>  
    <house-keeping-test-sql>select current_date from dual</house-keeping-test-sql>
    <maximum-connection-count>10</maximum-connection-count>
    <minimum-connection-count>2</minimum-connection-count>
    </proxool>
    
  <proxool>
    <alias>db5</alias>
    <driver-url>jdbc:mysql://192.168.1.5:3306/dbname3</driver-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <driver-properties>
    <property name="user" value="***" />
    <property name="password" value="****" />
    </driver-properties>
      <maximum-new-connections>10</maximum-new-connections>
    <prototype-count>5</prototype-count>
  	<test-before-use>true</test-before-use> 
	<test-after-use>true</test-after-use> 
	<house-keeping-sleep-time>60000</house-keeping-sleep-time>  
    <house-keeping-test-sql>select current_date from dual</house-keeping-test-sql>
    <maximum-connection-count>10</maximum-connection-count>
    <minimum-connection-count>2</minimum-connection-count>
    </proxool>
    
    </proxool-config>


Hibernate.cfg.xml配置:
文件位于src目录下。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

	<session-factory>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="myeclipse.connection.profile">mysql</property>
		<property name="connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="hibernate.proxool.existing_pool">true</property>
		<property name="hibernate.proxool.xml">proxool.xml</property>
		<property name="hibernate.proxool.pool_alias">db12</property>
		<property name="hibernate.proxool.pool_alias">db10</property>
		<property name="hibernate.proxool.pool_alias">db5</property>
	</session-factory>

</hibernate-configuration>


Spring 配置文件中对于datasource和sessionFactory配置片断:

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
		</property>
		<property name="url">
			<value>proxool.db12</value>
		</property>
	</bean>
	
	<bean id="latestDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
		</property>
		<property name="url">
			<value>proxool.db5</value>
		</property>
	</bean>
	
	<bean id="adminDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
		</property>
		<property name="url">
			<value>proxool.db10</value>
		</property>
	</bean>


	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath:com/dx/bags/hibernate/hbm</value>
			</list>
		</property>
		<property name="hibernateProperties">
		<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.proxool.pool_alias">
					db12
				</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.proxool.xml">proxool.xml</prop>
				<prop key="hibernate.proxool.existing_pool">true</prop>
			</props>
		</property>
	</bean>


	<bean id="latestdbSessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="latestDataSource"></property>

		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath:com/dx/bags/hibernate/hbm/latest</value>
			</list>
		</property>

		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.proxool.pool_alias">
					db5
				</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.proxool.xml">proxool.xml</prop>
				<prop key="hibernate.proxool.existing_pool">true</prop>
			</props>
		</property>
	</bean>


	<bean id="adminSessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="adminDataSource"></property>

		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath:com/dx/bags/hibernate/hbm/admin</value>
			</list>
		</property>

		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.proxool.pool_alias">
					db10
				</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.proxool.xml">proxool.xml</prop>
				<prop key="hibernate.proxool.existing_pool">true</prop>
			</props>
		</property>
	</bean>




关于proxool配置文件中的各参数就不多做说明了。很简单易懂。连接池所要JAR:proxool-0.9.1.jar,proxool-cglib.jar。

分享到:
评论

相关推荐

    Spring+Hibernate+Proxool连接池

    标题 "Spring+Hibernate+Proxool连接池" 涉及到的是在Java Web开发中,如何使用Spring框架集成Hibernate ORM框架,并结合Proxool作为数据库连接池的技术实践。这通常是为了提高应用性能,有效管理和复用数据库连接,...

    在Hibernate中配置Proxool连接池

    在上述配置中,我们通过`hibernate.proxool.properties`指定了Proxool的配置文件路径,`hibernate.proxool.pool_alias`设置了连接池的别名,这个别名需要与Proxool配置文件中的alias一致。 接下来,我们需要创建...

    Struts2+spring+hibernate中的proxool连接池配置

    本文将详细介绍如何在Struts2+Spring+Hibernate的环境中配置Proxool连接池。 首先,理解Proxool的工作原理。Proxool是一个基于池化的JDBC代理,它维护着一个数据库连接池,当应用需要访问数据库时,可以从池中获取...

    Hibernate Proxool连接池配置总结及常遇问题

    本文将深入探讨Hibernate与Proxool连接池的配置,以及在配置过程中可能遇到的问题。 **1. Proxool简介** Proxool是一个开源的数据库连接池实现,它提供了动态、可扩展的连接池管理服务。通过Proxool,开发者可以...

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

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

    proxool连接池配置文件

    项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用

    proxool连接池配置详解

    ### Proxool连接池配置详解 #### 一、概述 Proxool是一个开源的轻量级Java数据库连接池实现,其主要目标是替代常见的数据库连接池解决方案,如C3P0或DBCP,并且提供了更加灵活和易于配置的特性。在实际应用中,...

    spring3+hibernate3+proxool+mysql 超级企业J2EE DEMO(jar在下一个文件中,jar太大了)

    本项目采用当前主流的MVC和IOC框架spring 3、优秀的ORM框架hibernate和超级厉害的proxool数据库连接池。这个工程demo,是本人在企业应用中的项目缩影,绝对实用于企业的应用。 适合朋友: 1.一直用单独的servlet和...

    配置Hibernate使用Proxool连接池

    3. Proxool配置:除了在Hibernate配置文件中设置基本的数据库连接信息,我们还可以在Proxool的配置文件(如proxool.xml)中设置更详细的连接池参数,比如最大连接数、最小空闲连接数、超时时间等,以优化连接池性能...

    proxool连接池用户名密码加密

    - **解密机制**:解释了Proxool如何在运行时自动解密这些加密的凭据,以便与数据库建立连接。 - **安全注意事项**:可能包括关于密钥管理、日志安全等方面的提示,以防止加密机制被绕过。 使用Proxool的加密功能...

    Struts2 Spring3 Hibernate2 JPA2 Proxool连接池

    本项目采用Struts2、Hibernate3集成JPA2、Spring3和Proxool连接池的集成,对整体SSH框架的数据访问及网站效率都有较大的提升,本项目即时部署即可使用,既满足新手的学习,也对有深层研究的朋友有帮助。

    基于ssh的proxool连接池配置

    3. `url`属性的值`proxool.DbPool`是数据库连接池的别名,这个别名必须与`proxool.xml`配置文件中的`Alias`一致,以便Proxool知道如何创建和管理连接。 4. `LocalSessionFactoryBean`是Hibernate的配置,用于创建...

    proxool连接池配置

    -- 连接池的别名 --&gt; &lt;alias&gt;DBPool&lt;/alias&gt; - &lt;!-- proxool只能管理由自己产生的连接 --&gt; &lt;driver-url&gt;jdbc:sqlserver://localhost:1433;dataBaseName=books&lt;/driver-url&gt; - &lt;!-- JDBC驱动程序 --&gt; ...

    hibernate与proxool连接池整合demo

    - **配置Hibernate**:在Hibernate的配置文件`hibernate.cfg.xml`中,指定使用Proxool作为连接池,通过`&lt;property name="connection.pool_size"&gt;`设置连接池大小,并在`&lt;property name="hibernate.connection....

    Hibernate 联接池 proxool例子和jar包

    综上所述,这个"Hibernate dbpool proxool例子和jar包"提供的内容应该包含了如何在Hibernate项目中配置和使用Proxool连接池的示例代码以及所需的jar包,对于学习和实践Hibernate与Proxool的结合使用非常有帮助。...

Global site tag (gtag.js) - Google Analytics