SpringBoot4.5.2整合HikariCP数据库连接池操作的示例分析
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章给大家分享的是有关SpringBoot4.5.2整合HikariCP数据库连接池操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringBoot4.
千家信息网最后更新 2025年01月18日SpringBoot4.5.2整合HikariCP数据库连接池操作的示例分析
这篇文章给大家分享的是有关SpringBoot4.5.2整合HikariCP数据库连接池操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
SpringBoot4.5.2 整合HikariCP 数据库连接池
Spring Boot 2.+默认使用的就是连接池HikariCP
所以,只要引入相关包即可
引入
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java 8.0.26
application.yaml
spring: ########-spring datasource-######## datasource: #账号配置 url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: root password: root #hikari数据库连接池 hikari: pool-name: Retail_HikariCP minimum-idle: 5 #最小空闲连接数量 idle-timeout: 180000 #空闲连接存活最大时间,默认600000(10分钟) maximum-pool-size: 10 #连接池最大连接数,默认是10 auto-commit: true #此属性控制从池返回的连接的默认自动提交行为,默认值:true max-lifetime: 1800000 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟 connection-timeout: 30000 #数据库连接超时时间,默认30秒,即30000 connection-test-query: SELECT 1
输出
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.5.2)2021-08-09 14:25:51.322 INFO 1298 --- [ main] com.example.demorsa.DemoRsaApplication : Starting DemoRsaApplication using Java 11.0.2 on foxdeiMac with PID 1298 2021-08-09 14:25:51.324 INFO 1298 --- [ main] com.example.demorsa.DemoRsaApplication : No active profile set, falling back to default profiles: default2021-08-09 14:25:51.905 INFO 1298 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2021-08-09 14:25:51.921 INFO 1298 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8 ms. Found 0 JPA repository interfaces.2021-08-09 14:25:52.272 INFO 1298 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)2021-08-09 14:25:52.279 INFO 1298 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2021-08-09 14:25:52.279 INFO 1298 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.48]2021-08-09 14:25:52.350 INFO 1298 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2021-08-09 14:25:52.350 INFO 1298 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 954 ms2021-08-09 14:25:52.456 INFO 1298 --- [ main] com.zaxxer.hikari.HikariDataSource : Retail_HikariCP - Starting...2021-08-09 14:25:52.600 INFO 1298 --- [ main] com.zaxxer.hikari.HikariDataSource : Retail_HikariCP - Start completed.2021-08-09 14:25:52.633 INFO 1298 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2021-08-09 14:25:52.661 INFO 1298 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.32.Final2021-08-09 14:25:52.740 INFO 1298 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}2021-08-09 14:25:52.814 INFO 1298 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL55Dialect2021-08-09 14:25:52.919 INFO 1298 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]2021-08-09 14:25:52.927 INFO 1298 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2021-08-09 14:25:52.958 WARN 1298 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2021-08-09 14:25:53.236 INFO 1298 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''2021-08-09 14:25:53.245 INFO 1298 --- [ main] com.example.demorsa.DemoRsaApplication : Started DemoRsaApplication in 2.233 seconds (JVM running for 2.8)
HikariCP连接池及其在springboot中的配置
主要配置如下
配置项 | 描述 | 构造器默认值 | 默认配置validate之后的值 | validate重置 |
---|---|---|---|---|
autoCommit | 自动提交从池中返回的连接 | true | true | - |
connectionTimeout | 等待来自池的连接的最大毫秒数 | SECONDS.toMillis(30) = 30000 | 30000 | 如果小于250毫秒,则被重置回30秒 |
idleTimeout | 连接允许在池中闲置的最长时间 | MINUTES.toMillis(10) = 600000 | 600000 | 如果idleTimeout+1秒>maxLifetime 且 maxLifetime>0,则会被重置为0(代表永远不会退出);如果idleTimeout!=0且小于10秒,则会被重置为10秒 |
maxLifetime | 池中连接最长生命周期 | MINUTES.toMillis(30) = 1800000 | 1800000 | 如果不等于0且小于30秒则会被重置回30分钟 |
connectionTestQuery | 如果您的驱动程序支持JDBC4,我们强烈建议您不要设置此属性 | null | null | - |
minimumIdle | 池中维护的最小空闲连接数 | -1 | 10 | minIdle<0或者minIdle>maxPoolSize,则被重置为maxPoolSize |
maximumPoolSize | 池中最大连接数,包括闲置和使用中的连接 | -1 | 10 | 如果maxPoolSize小于1,则会被重置。当minIdle<=0被重置为DEFAULT_POOL_SIZE则为10;如果minIdle>0则重置为minIdle的值 |
metricRegistry | 该属性允许您指定一个 Codahale / Dropwizard MetricRegistry 的实例,供池使用以记录各种指标 | null | null | - |
healthCheckRegistry | 该属性允许您指定池使用的Codahale / Dropwizard HealthCheckRegistry的实例来报告当前健康信息 | null | null | - |
poolName | 连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置 | null | HikariPool-1 | - |
initializationFailTimeout | 如果池无法成功初始化连接,则此属性控制池是否将 fail fast | 1 | 1 | - |
isolateInternalQueries | 是否在其自己的事务中隔离内部池查询,例如连接活动测试 | false | false | - |
allowPoolSuspension | 控制池是否可以通过JMX暂停和恢复 | false | false | - |
readOnly | 从池中获取的连接是否默认处于只读模式 | false | false | - |
registerMbeans | 是否注册JMX管理Bean(MBeans) | false | false | - |
catalog | 为支持 catalog 概念的数据库设置默认 catalog | driver default | null | - |
connectionInitSql | 该属性设置一个SQL语句,在将每个新连接创建后,将其添加到池中之前执行该语句。 | null | null | - |
driverClassName | HikariCP将尝试通过仅基于jdbcUrl的DriverManager解析驱动程序,但对于一些较旧的驱动程序,还必须指定driverClassName | null | null | - |
transactionIsolation | 控制从池返回的连接的默认事务隔离级别 | null | null | - |
validationTimeout | 连接将被测试活动的最大时间量 | SECONDS.toMillis(5) = 5000 | 5000 | 如果小于250毫秒,则会被重置回5秒 |
leakDetectionThreshold | 记录消息之前连接可能离开池的时间量,表示可能的连接泄漏 | 0 | 0 | 如果大于0且不是单元测试,则进一步判断:(leakDetectionThreshold < SECONDS.toMillis(2) or (leakDetectionThreshold > maxLifetime && maxLifetime > 0),会被重置为0 . 即如果要生效则必须>0,而且不能小于2秒,而且当maxLifetime > 0时不能大于maxLifetime |
dataSource | 这个属性允许你直接设置数据源的实例被池包装,而不是让HikariCP通过反射来构造它 | null | null | - |
schema | 该属性为支持模式概念的数据库设置默认模式 | driver default | null | - |
threadFactory | 此属性允许您设置将用于创建池使用的所有线程的java.util.concurrent.ThreadFactory的实例。 | null | null | - |
scheduledExecutor | 此属性允许您设置将用于各种内部计划任务的java.util.concurrent.ScheduledExecutorService实例 | null | null | - |
## 数据库配置spring.datasource.type=com.zaxxer.hikari.HikariDataSourcespring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=falsespring.datasource.username = rootspring.datasource.password = root## Hikari 连接池配置 ------ 详细配置请访问:https://github.com/brettwooldridge/HikariCP## 最小空闲连接数量spring.datasource.hikari.minimum-idle=5## 空闲连接存活最大时间,默认600000(10分钟)spring.datasource.hikari.idle-timeout=180000## 连接池最大连接数,默认是10spring.datasource.hikari.maximum-pool-size=10## 此属性控制从池返回的连接的默认自动提交行为,默认值:truespring.datasource.hikari.auto-commit=true## 连接池母子spring.datasource.hikari.pool-name=MyHikariCP## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟spring.datasource.hikari.max-lifetime=1800000## 数据库连接超时时间,默认30秒,即30000spring.datasource.hikari.connection-timeout=30000spring.datasource.hikari.connection-test-query=SELECT 1
感谢各位的阅读!关于"SpringBoot4.5.2整合HikariCP数据库连接池操作的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
属性
数据
数据库
配置
控制
最大
时间
周期
实例
生命
空闲
最长
整合
最小
模式
程序
驱动程序
支持
测试
驱动
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库表的有几条数据
自己如何搭建服务器我有电信
8核心16线程的服务器
武汉洋屏网络技术
数据库中关联
游戏服务器分布式数据库
计算机网络技术新华杯
观看同上一堂网络安全课
浙江数据库外泌体销售
软件开发个人开票
内存数据库排名
生物识别技术和数据库
网络安全与执法选课要求
赣南脐橙商品分析软件开发
网络安全课程的设计
中稽互联网科技有限公司
软件开发测试肤质测评
测控网络技术课后
离开银行软件开发能干什么
django获取远程服务器文件
ct数据库处理技术
浪潮服务器工程师
CNKI数据库总库
华为服务器怎么连接远程管理
南湖区网络安全
国内网络安全事件案例分析
云服务器可以挂淘宝么
确诊人数数据库
队列在软件开发中的应用领域
软件开发就业条件