springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池

在实际的应用开发中,与数据库交互通常使用数据库连接池来重用Connection对象,减少资源消耗。

Spring Boot 的数据源是自动配置的。在 Spring Boot 2.2.1 版本中,有几种数据源配置可选,它们按照 HikariCP -> Tomcat -> DBCP2 优先顺序来选择最后实际使用哪个数据库连接池。

配置

在 Spring Boot 的自动化配置中,对于数据源的配置可以分为核心配置和数据源库接池配置。

核心配置

核心配置是以 spring.datasource.* 形式开始,主要是配置数据库的信息。本文以 MySQL 为例,先引入依赖:

<dependency>
    <groupId>org.springframework.bootgroupId>  
    <artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <scope>runtimescope>
dependency>

然后在 application.properties 中配置如下信息:

# 驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxx?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
# 数据库用户名
spring.datasource.username=xxx
# 数据库密码
spring.datasource.password=xxx

还有其它的关于数据源的配置:

spring.datasource.continue-on-error=					# 默认 false
spring.datasource.data= # 指定DML脚本
spring.datasource.data-password=
spring.datasource.data-username=
spring.datasource.generate-unique-name= # 默认 true
spring.datasource.initialization-mode= # 默认 embedded
spring.datasource.jndi-name=
spring.datasource.name=
spring.datasource.platform= # 默认 all
spring.datasource.schema-password=
spring.datasource.schema-username=
spring.datasource.separator=
spring.datasource.sql-script-encoding=
spring.datasource.xa.data-source-class-name=         # 指定数据源的全限定名
spring.datasource.xa.properties.*=

数据源连接池配置

数据源连接池配置是以 spring.datasource..* 形式开始,主要是配置数据库连接池的一些信息。

application.properties 中通过配置spring.datasource.type 可以指定数据源。而 Spring Boot 提供的几种数据源可以忽略该配置。

下面介绍一下 Spring Boot 提供的几种数据源配置。

HikariCP

HikariCP 号称是目前世界上最快的连接池,在 pom.xml 依赖引入:

<dependency>
    <groupId>com.zaxxergroupId>
    <artifactId>HikariCPartifactId>
    <version>3.4.1version>
dependency>

而 Spring Boot 2.2.1 框架中默认推荐使用,而项目中引入的 spring-boot-starter-jdbc 依赖来操纵数据库,就已经包括 HikariCP 连接池的依赖。我们经常用到的mybatis-spring-boot-starterspring-boot-starter-data-jpa 两个操纵数据库的框架也依赖了 spring-boot-starter-jdbc

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

该配置会强制指定Hikari连接池。

下面就开始在 application.properties 配置文件中配置HikariCP连接池的信息并绑定到HikariDataSource中,如果不配置,Spring Boot 会使用默认配置信息。HikariCP 的配置信息以 spring.datasource.hikari 开头。

spring.datasource.hikari.allow-pool-suspension=				# 控制池是否可以通过JMX暂停和恢复 默认 false
spring.datasource.hikari.auto-commit= # 是否自动提交事务。默认true
spring.datasource.hikari.catalog= # 为支持catalog概念的数据库设置默认 catalog 默认 driver default
spring.datasource.hikari.connection-init-sql= # 该属性设置一个SQL语句,在将每个新连接创建后,将其添加到池中之前执行该语句。默认 null
spring.datasource.hikari.connection-test-query= # 连接池每分配一条连接前执行的查询语句(如SELECT 1),以验证该连接是否是有效的。如果你的驱动支持JDBC4,HikariCP强烈建议我们不要设置此属性。默认null
spring.datasource.hikari.connection-timeout= # 链接超时时间(毫秒),如果在没有连接可用的情况下等待超过此时间,则抛出SQLException。默认30000(30秒)
spring.datasource.hikari.data-source-class-name= # JDBC驱动程序提供的DataSource类的名称,如果使用了`jdbc-url`则不需要此属性。默认 null
spring.datasource.hikari.data-source-j-n-d-i=
spring.datasource.hikari.data-source-properties=
spring.datasource.hikari.driver-class-name= # HikariCP将尝试通过仅基于 jdbcUrl 的 DriverManager 解析驱动程序,但对于一些较旧的驱动程序,还必须指定 driverClassName。默认 null
spring.datasource.hikari.exception-override-class-name=
spring.datasource.hikari.health-check-properties=
spring.datasource.hikari.health-check-registry= # 该属性允许您指定池使用的 Codahale / Dropwizard HealthCheckRegistry 的实例来报告当前健康信息 默认 null
spring.datasource.hikari.idle-timeout= # 空闲超时时间(毫秒),只有在`minimum-idlespring.datasource.hikari.initialization-fail-timeout=         # 如果池无法成功初始化连接,则此属性控制池是否将 fail fast 默认 1
spring.datasource.hikari.isolate-internal-queries= # 是否在其自己的事务中隔离内部池查询,例如连接活动测试 默认 false
spring.datasource.hikari.jdbc-url= # 数据库链接地址
spring.datasource.hikari.leak-detection-threshold= # 记录消息之前连接可能离开池的时间量,表示可能的连接泄露。默认 0
spring.datasource.hikari.login-timeout=
spring.datasource.hikari.max-lifetime= # 连接池中连接的最长声明周期(毫秒)。数值0表示不限制。默认1800000(30分钟)
spring.datasource.hikari.maximum-pool-size= # 连接池中可同时连接的最大连接数,当池中没有空闲连接可用时,就会阻塞直到超出`connection-timeout`设定的值。默认10
spring.datasource.hikari.metric-registry= # 该属性允许您指定一个 Codahale / Dropwizard MetricRegistry 的实例,供池使用以记录各种指标 默认 null
spring.datasource.hikari.metrics-tracker-factory=
spring.datasource.hikari.minimum-idle= # 最小空闲连接数,HikariCP建议我们不要设置此值,而是充当固定大小的连接池。默认10
spring.datasource.hikari.password= # 数据库密码,如果使用了`jdbc-url`则需要此属性
spring.datasource.hikari.pool-name= # 连接池名称,主要用于显示在日志记录和JMX管理控制台中。默认auto-generated
spring.datasource.hikari.read-only= # 从池中获取的连接是否默认处于只读模式 默认 false
spring.datasource.hikari.register-mbeans= # 是否注册JMX管理Bean(MBeans) 默认 fal
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值