Spring - Tomcat jdbc pool 配置

这篇博客详细介绍了如何在Spring中配置Tomcat JDBC连接池,包括设置URL、驱动、用户名、密码以及各种连接池参数,如最大活跃连接数、验证间隔、空闲链接检查等,以确保数据库连接的高效管理和维护。
部署运行你感兴趣的模型镜像

Spring 配置文件


<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:pool.properties" />

</bean>


<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close">
<!-- 地址 -->
<property name="url">
<value>${connection.url}</value>
</property>
<!-- 驱动地址 -->
<property name="driverClassName">
<value>${connection.driverClassName}</value>
</property>
<!-- 用户名 -->
<property name="username">
<value>${connection.username}</value>
</property>
<!-- 密码 -->
<property name="password">
<value>${connection.password}</value>
</property>
<!-- 连接池是否注册JMX代理,默认true -->
<property name="jmxEnabled">
<value>${connection.jmxEnabled}</value>
</property>
<!-- 空闲时是否进行验证,检查对象是否有效,默认为false -->
<property name="testWhileIdle">
<value>${connection.testWhileIdle}</value>
</property>
<!-- 取得对象时是否进行验证,检查对象是否有效,默认为false -->
<property name="testOnBorrow">
<value>${connection.testOnBorrow}</value>
</property>
<!-- 验证间隔,避免额外验证,在此时间内若通过验证,则再次请求不会验证,默认30000 (30秒) -->
<property name="validationInterval">
<value>${connection.validationInterval}</value>
</property>
<!-- 返回对象时是否进行验证,检查对象是否有效,默认为false -->
<property name="testOnReturn">
<value>${connection.testOnReturn}</value>
</property>
<!-- 验证连接是否成功, SQL SELECT 指令至少要返回一行 -->
<property name="validationQuery">
<value>${connection.validationQuery}</value>
</property>
<!-- 多久检查一次空闲链接,并且验证空闲链接,不能设置小于1,默认5000 (5 秒) -->
<property name="timeBetweenEvictionRunsMillis">
<value>${connection.timeBetweenEvictionRunsMillis}</value>
</property>
<!-- 可以从对象池中取出的对象最大个数,为0则表示没有限制,默认为100 -->
    <property name="maxActive">  
    <value>${connection.maxActive}</value>
    </property>
    <!-- 创建连接池时初始化连接数,默认10 -->
    <property name="initialSize">
<value>${connection.initialSize}</value>
</property>
<!-- 无链接可用时最大等待秒数,超过时间会丟出错误信息  默认30000 (30 秒) -->
<property name="maxWait">
<value>${connection.maxWait}</value>
</property>
<!-- 几秒后会自我中断 默认 60 (60 秒) -->
<property name="removeAbandonedTimeout">
<value>${connection.removeAbandonedTimeout}</value>
</property> 
<!-- 空闲链接验证时间  默认 60 (60 秒) -->
<property name="minEvictableIdleTimeMillis">
<value>${connection.minEvictableIdleTimeMillis}</value>
</property>
<!-- 最小空间连接数 一般与初始化连接数相等 默认10个 -->
<property name="minIdle">
<value>${connection.minIdle}</value>
</property>
<!-- 是否记录中断事件, 默认为 false -->
<property name="logAbandoned">
<value>${connection.logAbandoned}</value>
</property>
<!-- 是否自我中断, 默认是 false -->
<property name="removeAbandoned">
<value>${connection.removeAbandoned}</value>
</property>
<!-- jdbc 拦截器 -->
<property name="jdbcInterceptors">
<value>${connection.jdbcInterceptors}</value>
</property>
</bean>



pool.properties


connection.url=jdbc\:postgresql\://localhost\:5432/sample
connection.driverClassName=org.postgresql.Driver
connection.username=postgres
connection.password=123456
connection.jmxEnabled=true
connection.testWhileIdle=false
connection.testOnBorrow=true
connection.validationInterval=30000
connection.testOnReturn=false
connection.validationQuery=select 1
connection.timeBetweenEvictionRunsMillis=30000
connection.maxActive=100
connection.initialSize=10
connection.maxWait=10000
connection.removeAbandonedTimeout=60
connection.minEvictableIdleTimeMillis=30000
connection.minIdle=10
connection.logAbandoned=true
connection.removeAbandoned=true
connection.jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer




您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值