`
robinsoncrusoe
  • 浏览: 747091 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring配置连接池

    博客分类:
  • JAVA
阅读更多
Spring 配置proxool连接池

在我的工程中,文件名叫hibernate.cfg.xml,和entity放在一起

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
  <property name="driver" value="${hibernate.driverClass}" />

或者直接写成<property name="driver">               <value>com.mysql.jdbc.Driver</value></property>
  <property name="driverUrl" value="${hibernate.jbdc.url}" />
  <property name="user" value="${hibernate.jbdc.user}" />
  <property name="password" value="${hibernate.jdbc.password}" />

<!-- <alias>是连接池的别名,proxoolPool连接池的一种,此外经常使用的连接池还有C3P0 -->
  <property name="alias" value="proxoolPool" />

<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回

           收,超时的销毁 (默认30秒)-->
  <property name="houseKeepingSleepTime" value="30000" />

<!-- 最少保持的空闲连接数 (默认5个)-->
  <property name="prototypeCount" value="20" />

<!-- 设置连接池内生成的最大连接数/在连接池中所有数据库连接的最大数目(默认15个) -->
  <property name="maximumConnectionCount" value="${hibernate.jdbc.maxConn}" />

<!-- 设置连接池内生成的最小连接数/在连接池中可用的数据库连接的最少数目(默认5个)-->
  <property name="minimumConnectionCount" value="${hibernate.jdbc.minConn}" />

<!-- 在Consonl中显示sql -->
  <property name="trace" value="true" />
  <property name="verbose" value="true" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="schemaUpdate" value="${hibernate.schemaUpdate}" />
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
    <prop key="hibernate.format_sql">true</prop>
    <prop key="hibernate.use_outer_join">true</prop>
    <prop key="hibernate.jdbc.fetch_size">50</prop>
    <prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
    <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>
    <prop key="hibernate.query.substitutions">true 1,false 0,yes 'Y',no 'N'</prop>
   </props>
  </property>
  <property name="annotatedClasses">
   <list>
    <value>com.mysteel.entity.xxx</value>
   </list>
  </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
</bean>

</beans>
第二个bean即从
<bean:id="sessionFactory"...>到</bean>是因为使用 Spring 框架,可以使用 AnnotationSessionFactoryBean
类轻松建立一个基于注释的 Hibernate 会话工厂
<!-- SessionFactory:使用AnnotationSessionFactoryBean可以直接在Spring中配置一个SessionFactory,而不必使用Hibernate特有的hibernate.cfg.xml配置文件。 -->

Spring配C3P0连接池
applicationContext.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
    <bean id="dataSource"
        class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverclass">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="jdbcUrl">
            <value>jdbc:mysql://192.168.3.110:3306/DBName?useUnicode=true&amp;characterEncoding=GBK</value>
        </property>
        <property name="user">
            <value>root</value>
        </property>
        <property name="password">
            <value>root</value>
        </property>

<!--连接池中保留的最小连接数。-->
        <property name="minPoolSize">
            <value>5</value>
        </property>

<!--连接池中保留的最大连接数。Default: 15 -->
        <property name="maxPoolSize">
            <value>30</value>
        </property>

<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
        <property name="initialPoolSize">
            <value>10</value>
        </property>

<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
        <property name="maxIdleTime">
            <value>60</value>
        </property>

<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
        <property name="acquireIncrement">
            <value>5</value>
        </property>

<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
  属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
  如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
        <property name="maxStatements">
            <value>0</value>
        </property>

<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
        <property name="idleConnectionTestPeriod">
            <value>60</value>
        </property>

<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
        <property name="acquireRetryAttempts">
            <value>30</value>
        </property>

<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
  保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
  获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
        <property name="breakAfterAcquireFailure">
            <value>true</value>
        </property>

<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
  时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
  等方法来提升连接测试的性能。Default: false -->
        <property name="testConnectionOnCheckout">
            <value>false</value>
        </property>
    </bean>
    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref local="dataSource" />
        </property>
        <property name="mappingResources">
            <list>
                <value>com/xh/hibernate/vo/User.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.generate_statistics">true</prop>
                <prop key="hibernate.connection.release_mode">auto</prop>
                <prop key="hibernate.autoReconnect">true</prop>
            </props>
        </property>
    </bean>
</beans>
分享到:
评论

相关推荐

    spring连接池配置

    本文将详细解析一个具体的Spring配置示例,通过分析`applicationContext.xml`文件中的配置项,帮助读者理解如何有效地配置C3P0连接池。 #### 一、C3P0连接池简介 C3P0是一个开源的JDBC连接池项目,它简化了数据库...

    spring中 连接池的使用

    在Spring框架中,数据库连接池是管理数据库连接的关键组件,它能有效地提高应用程序的性能和资源利用率。在上述内容中,提到了两种常用的连接池实现:Apache的DBCP(BasicDataSource)和C3P0(ComboPooledDataSource...

    Spring2.5配置proxool连接池

    Spring2.5配置proxool连接池

    Tomcat连接池配置.doc

    Tomcat 连接池配置详解 Tomcat 连接池配置是 Web 应用程序中一个非常重要的组件,它负责管理和维护数据库连接,确保数据访问的高速和安全性。本文将详细介绍 Tomcat 连接池配置的步骤和原理,帮助读者快速掌握 ...

    Spring各种连接池的比较.doc

    在Spring框架中,数据库连接池是管理数据库连接的关键组件,它能提高应用性能,通过复用已存在的连接而不是每次请求时创建新的连接。...同时,正确配置连接池参数也至关重要,这直接影响到系统的稳定性和资源利用率。

    jsp连接池配置器(自动配置连接池)

    【jsp连接池配置器(自动配置连接池)】是一个实用工具,旨在简化开发人员在Java Web应用程序中配置数据库连接池的过程。通常,手动配置连接池需要编写大量的XML配置文件,如`context.xml`或`web.xml`,以及相关的Java...

    Spring下配置几种常用连接池

    在Spring框架中,数据库连接管理是非常关键的一部分,有效的连接池配置可以提高应用的性能和稳定性。本文将深入探讨如何在Spring环境下配置几种常用的数据库连接池,包括HikariCP、Druid和Apache DBCP2。 一、...

    Spring下配置几种常用连接池及配置详解

    本篇文章将详细探讨在Spring环境下配置几种常用的数据库连接池,并提供配置属性的详尽解析和实例应用。 1. **HikariCP** HikariCP是目前非常流行的一款高性能连接池,以其轻量级、高效而受到广泛赞誉。在Spring中...

    spring-连接池配置

    ### Spring 数据库连接池配置详解 #### 一、数据库连接池依赖库 为了在Spring框架中使用数据库连接池,我们需要引入以下两个依赖库: 1. **commons-dbcp.jar**:这是Apache Commons DBCP(Database Connection ...

    Spring mvc整合redis实例(redis连接池)

    本文将详细介绍如何在Spring MVC中整合Redis,并利用连接池来优化性能。 首先,我们需要引入Redis的相关依赖。在Maven项目中,可以在pom.xml文件中添加`spring-data-redis`和`jedis`库,这两个库分别提供了Spring对...

    详解SpringBoot配置连接池

    在SpringBoot中配置连接池是优化数据库访问性能的重要环节,本文将详细解析如何在SpringBoot中配置连接池。 首先,SpringBoot默认支持的连接池包括dbcp、dbcp2、tomcat和hikari。其中,Tomcat数据源连接池因其优秀...

    jdbc连接池配置(优化连接速度)

    本文将详细讲解JDBC连接池的工作原理、配置方法以及如何通过优化来提升连接速度。 JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,而JDBC连接池则是一种对数据库连接进行管理和复用的技术。它...

    Spring Boot如何使用HikariCP连接池详解

    通过简单的依赖引入和配置,开发者可以快速地在Spring Boot应用中启用HikariCP连接池,提升数据库操作的性能和稳定性。HikariCP的诸多特性,如高效的连接管理和并发控制,使其成为现代Java应用的首选连接池实现。在...

    Spring Boot ActiveMQ连接池配置过程解析

    Spring Boot ActiveMQ连接池配置过程解析 Spring Boot ActiveMQ连接池配置过程解析 在本文中,我们将详细介绍Spring Boot ActiveMQ连接池配置过程解析。该配置过程主要解决了Spring Boot ActiveMQ连接池中的频繁...

    Java 连接池多种方式配置

    本文将详细介绍在Java环境中配置连接池的多种方式,涵盖不同常用的Java框架。 一、C3P0连接池 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。配置C3P0连接池通常需要在...

    JDBC数据源连接池的配置和使用示例

    **JDBC数据源连接池配置与使用详解** 在Java Web应用中,数据库连接的管理是至关重要的。为了提高性能和资源利用率,开发人员通常会使用数据源连接池。本篇文章将详细讲解JDBC数据源连接池的配置和使用,以帮助你更...

    连接池与Spring,Hibernate结合

    3. 在Spring配置文件中配置SessionFactory,关联Hibernate配置文件。 4. 定义数据源,可以是任何支持的连接池类型。 5. 配置事务管理器,通常使用`HibernateTransactionManager`。 6. 在业务层代码中,通过Spring的`...

    Springboot多连接池+websocket

    配置多个连接池意味着可以根据不同的业务需求,为不同的数据源设置不同的连接池,例如,对于读写频繁的操作可以配置高性能的连接池,而对于低频操作则可以选择更节省资源的连接池。这需要在`application.properties`...

Global site tag (gtag.js) - Google Analytics