spring中连接池的配置

WebFlux实战——R2DBC连接池(r2dbc-pool)配置 maxSize、maxIdle、validationQuery这些在我们常见的数据库连接池(如Druid等)耳熟能详的配置,在R2dbc-MySQL的官方github中缺找不到只言片语。而在现有的技术文章中,笔者也没能找到对应的配置。到底应该如何配置这些参数,使得r2dbc也使用上连接池技术?这篇文章一起来探讨 阅读详情
 在默认通过myeclipse生成的配置里,spring使用的是apache的dbcp连接池

<bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="com.mysql.jdbc.Driver">
  </property>
  <property name="url"
   value="jdbc:mysql://localhost:3306/mysql">
  </property>
  <property name="username" value="root"></property>
  <property name="password" value="root"></property>
 </bean>

如果改为C3P0则为:

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:jdbc.properties</value>
        </property>
    </bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="autoCommitOnClose" value="true"/>
        <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
        <property name="initialPoolSize" value="${cpool.minPoolSize}"/>
        <property name="minPoolSize" value="${cpool.minPoolSize}"/>
        <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
        <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
        <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
        <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
    </bean>
jdbc.properties:

# Database URL
jdbc.url=jdbc:mysql://192.168.0.25"3306/db

# Database login information
jdbc.username=root
jdbc.password=

# Time to wait for an open connection before timing out
# (in milliseconds)
cpool.checkoutTimeout=5000

# Connection pool size
cpool.minPoolSize=5
cpool.maxPoolSize=40

# How long to keep unused connections around(in seconds)
# Note: MySQL times out idle connections after 8 hours(28,800 seconds)
# so ensure this value is below MySQL idle timeout
cpool.maxIdleTime=25200

# How long to hang on to excess unused connections after traffic spike
# (in seconds)
cpool.maxIdleTimeExcessConnections=1800

# Acquiring new connections is slow, so eagerly retrieve extra connections
# when current pool size is reached
cpool.acquireIncrement=5

或者将上面的3部分写成一个:
<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
      <property name="driverClass">
        <value>${jdbc.driverClassName}</value>
      </property>
      <property name="jdbcUrl">
        <value>${jdbc.url}</value>
      </property>
      <property name="user">
       <value>${jdbc.username}</value>
      </property>
      <property name="password">
       <value>${jdbc.password}</value>
      </property>
      <property name="initialPoolSize"><value>10</value></property>
      <property name="minPoolSize"><value>5</value></property>
      <property name="maxPoolSize"><value>30</value></property>
      <property name="acquireIncrement"><value>5</value></property>
      <property name="maxIdleTime"><value>10</value></property>
      <property name="maxStatements"><value>0</value></property>
    </bean>

如果使用的是受管理的J2EE服务器,则在spring中配置为JNDI连接:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jndi/xxx</value>
</property>
</bean>

如果在应用里有独自使用hibernate,则在spring中配置hibernate连接池,使用C3P0如下:
<bean   id="DataSource"  
  class="org.apache.commons.dbcp.BasicDataSource">  
  <property   name="driverClassName">  
  <value>oracle.jdbc.driver.OracleDriver</value>  
  </property>  
  <property   name="url">  
  <value>jdbc:oracle:thin:@172.16.20.241:1521:dbsvr</value>  
  </property>  
  <property   name="username">  
  <value>hl3000</value>  
  </property>  
  <property   name="password">  
  <value>hldw3101</value>  
  </property>  
  </bean>  
  <bean   id="SessionFactory"  
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  <property   name="dataSource">  
  <ref   bean="DataSource"   />  
  </property>  
  <property   name="hibernateProperties">  
  <props>  
  <prop   key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>  
  <prop   key="hibernate.show_sql">true</prop>  
   
  <!--   C3P0连接池配置   -->  
  <prop   key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>  
  <prop   key="hibernate.c3p0.max_size">20</prop>  
  <prop   key="hibernate.c3p0.min_size">5</prop>  
  <prop   key="hibernate.c3p0.timeout">120</prop>  
  <prop   key="hibernate.c3p0.max_statements">100</prop>  
  <prop   key="hibernate.c3p0.idle_test_period">120</prop>  
  <prop   key="hibernate.c3p0.acquire_increment">2</prop>  
  <prop   key="myeclipse.connection.profile">hl3000</prop>  
  </props>  
  </property>  
  <property   name="mappingResources">  
  <list>  
  <value>com/hl3000/DBLogic/POJO/PermUserAccount.hbm.xml</value>  
  </list>  
  </property>  
  </bean> 

spring中配置独立使用hibernate时使用jndi的配置:

hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.datasource=java:comp/env/jdbc/SAMPLEDB
hibernate.show_sql=true

如果是使用不受管理的Servlet容器如Tomcat,也可以使用jndi的方式配置,需要在tomcat中配置数据源,在server.xml中增改大致如下:

     <Resource name="jdbc/testDb" auth="Container"
                    type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/testDB">//数据源的名称
            <parameter><name>username</name><value>root</value></parameter>数据库的名称
            <parameter><name>password</name><value>password</value></parameter>数据库密码
            <parameter><name>driverClassName</name>
              <value>org.gjt.mm.mysql.Driver</value></parameter>//要加载的驱动
            <parameter><name>url</name>
              <value>jdbc:mysql://172.20.0.73/rk?</value></parameter>//要连接的URL
          </ResourceParams>

c3p0连接池参数配置 立即下载

相关推荐

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 273

Spring配置数据源(c3p0,druid)

本文介绍了如何使用spring创建数据源连接池,介绍了使用数据源的作用,使用数据源开发的开发步骤,以及数据源开发需要用到的Maven坐标,从手动创建数据源开始,经过解耦,最终使用Spring配置数据源,帮助初学者了解什么是数据源,怎么使用Spring配置数据源,也是记录自己的学习笔记

fj123321666的博客 763

别再为10G UDP发愁了!手把手教你用Xilinx 10G/25G Ethernet Subsystem IP核搭建FPGA网络栈(附12套工程源码)

本文详细介绍了基于Xilinx UltraScale架构的FPGA网络栈开发,重点讲解了10G/25G Ethernet Subsystem IP核的应用实践。通过手把手教程和12套工程源码,帮助开发者解决10G UDP通信中的物理层接口、协议栈实现和系统集成等核心挑战,实现高性能FPGA网络栈搭建。

weixin_42522575的博客 364

spring配置c3p0连接池

spring配置c3p0连接池 Spring 配置连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码在文件配置中进行配置 2 dao使用jdbcTemplate (1)创建ser...

zhupengqq的博客 311

Visual Studio 2015 插件开发 从入门到放弃(一)

必需知识:C#和Visual Studio (1)安装 Visual Studio 2015 的时候选择 Visual Studio 扩展性工具(Visual Studio Extensibility Tools)。对于已经安装好 Visual Studio 2015 的小伙伴,可以找VS2015的安装包,或者在程序与功能中找VS2015双击,在VS2015界面中选择 修改,再选择

AncientPeople的博客 2万+

手把手教你用LaTeX完成Elsevier期刊投稿:附完整文件上传清单与注意事项

本文提供了一份详尽的Elsevier期刊LaTeX投稿实战指南。文章系统拆解了从稿件准备、文件上传到最终提交的全流程,重点解析了Manuscript、Figure(s)等关键文件的上传逻辑与注意事项,并附有PDF生成前后的详细检查清单,旨在帮助研究者高效、规范地完成投稿,规避常见错误。

weixin_29300931的博客 487

spring c3p0连接池配置 com.mchange.v2.c3p0.combopooleddatasource

3      30      1000      false   <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么   属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试   使用。Default: null-->   Test

u014793936的专栏 1万+

从业务角色到工作台:一步步创建 SAP Fiori Launchpad Space 与 Page

SAP S/4HANA Launchpad 配置优化指南:从业务角色出发构建高效工作台 本文针对S/4HANA项目中用户普遍反映的"入口难找"问题,提出基于Spaces和Pages的系统化解决方案。通过"以工作岗位为中心"的设计理念,将Launchpad信息架构重构为:一个业务角色对应一个Space,每个Space包含1-5个Page,Page内按任务划分2-5个Section,每个Section放置3-7个Tiles。文章详细阐述了从Business Role入手配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 224

多数据源配置

jdbc.properties: 首先在jdbc文件中配置多个数据源信息 jdbc.driverClassName=com.mysql.jdbc.Driver orcl.jdbc.driverClassName=oracle.jdbc.driver.OracleDriver #生产环境数据库配置 jdbc.url=jdbc:mysql://XXXX:3306/XXX?serverTimez...

夜晓星的博客 391

STM32 stack_size和heap_size大小设置的意义

在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。如下图所示的启动代码中,Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。 1、若工程中使用的局部变量较多,定义的数据长度较大时,若不调整栈的空间大小,则会导致程序出现栈溢出,程序运行结果与预期的不符或程序跑飞。这时我们就需要手动的调整栈的大小。 2、当工程中使用了malloc动态分配内存空间时,这时分配.......

zxm8513优快云博客 3万+

【数据集】全球首个10米分辨率精细分类土地覆盖数据集GLC_FCS10

【数据集】全球首个10米分辨率精细分类土地覆盖数据集GLC_FCS10

WW、forever的博客 1567

如何在Spring中配置数据库连接池

在现代企业应用中,数据库连接池是实现高效数据访问的关键组件。Spring框架提供了灵活的配置方式来集成不同类型的数据库连接池,例如HikariCP、Apache DBCP等。使用数据库连接池可以有效地复用数据库连接,减少每次数据库操作时的连接创建和销毁开销,提升应用的性能。

weixin_43772292的博客 2006

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

我哎GIS博客 1665

Spring配置数据源(连接池)

首先数据源就是为了提高程序的性能而出现的。连接池的作用是为了提高性能,避免重复多次的打开数据库连接而曹诚性能的下降和系统资源的浪费;连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建和销毁的过程。这样以提高系统的性能。 数据源的开发步骤: 1,导入数据源的坐标和数据库驱动坐标 2,创建数据源对象 3,设置数据源的基本连接数据 4,使用数据源获取连接资源和归还连接资源 使用连接池的优势: 1、资源复用:由于数据库连接得到重用,避免了频繁创建

security_linsho的博客 4506

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring配置数据源连接池

在利用spring/ ssh /s2sh / ssi /s2si进行开发的过程中,一般情况下都会在spring的配置文件中进行数据源的配置,为了提高数据源的内存利用效率基本上都是会配置数据源连接池的。        在讲到连接池之前我们先看一下数据源直接连接数据库的配置,以下就是最简单的jdbc直接连接数据库的配置,它不会对我们获取连接、释放连接等进行优化,就和我们直接利用纯jdbc操作数据库一

hu_shengyang的专栏 6773

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring Boot--Druid连接池的配置方法

本文介绍Spring Boot的Druid连接池的配置方法。

IT利刃出鞘的博客 7802

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

spring Boot redis连接池配置,Spring Session配置

1.POM配置 redis.clients jedis 2.9.0 org.springframework.session spring-session-data-redis 2.配置文件application.properties # REDIS (RedisProperties) # Redis数据库索引(默认为0) spr

yangliuhbhd的博客 2万+

Spring Boot配置MongoDB连接池

  因为Spring Boot中默认没有提供配置MongoDB连接池的属性,所以需要自己向Spring容器中注入mongoDbFactory 1. 添加依赖 &lt;parent&gt;    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;    &lt;artifactId&gt;spring-boot-starter-...

郭大路路 2万+

spring配置连接池

Spring配置连接池的流程一样,不同的连接池,依赖注入这一步骤不同而已 1.引入context命名空间 <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" xsi:

HuaJi250的博客 305

【Spring】 常用的连接池配置

常用的连接池配置 常用的连接池配置参考 java数据连接池的几种区别和使用参考 读取jdbcConfig.properties <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property>

编程学习集装箱 495

spring-boot中配置hikari连接池属性

事件起因与一个简单应用经常发生Young GC,甚至在没有请求量的情况下也经常发生GC (Allocation Failure),后来使用mat工具进行分析,发现mysql连接相关的class居然占了40%+堆内空间。才发现spring boot的连接池大小没有配置,默认是10个连接,但实际上该应用不需要这么多。 The class "com.mysql.cj.jdbc.AbandonedCo...

zhibin的程序日记 2万+

在 Spring Boot 上配置 Tomcat 连接池

Spring-Boot 支持 HikariCP(默认)、tomcat-jdbc 和 Commons DBCP 作为数据库的连接池。但是,每个池都使用一组不同的属性。在本教程中,我们将学习如何配置 Tomcat 连接池。 配置 Tomcat JDBC 连接池 首先,要配置 Tomcat 连接池,您需要在application.properties文件的“spring.datasource.tomcat”命名空间中添加属性。这是一个例子: spring.datasource.tomca..

allway2的博客 4104

Spring Boot--Hikari连接池的配置方法

本文介绍Spring Boot的Hikari连接池的配置方法。

IT利刃出鞘的博客 2万+

Spring整合Redis,并配置Jedis连接池

目录 只言片语 创建redis连接池的配置文件 单机版 spring整合redis(使用JedisPool) 项目中使用示例 集群版 spring整合redis(使用JedisCluster) 项目中使用示例 只言片语   如果想了解如何使用原生Java代码操作Redis,配置Redis连接池,可以参考:redis连接池——...

JOKER0707的博客 1459
上一篇: Spring 事务简化配置
下一篇: Locale的手动切换
hjpengjava
博客等级 码龄18年 5粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值