美文网首页
springboot配置连接池

springboot配置连接池

作者: 晓晓_1931 | 来源:发表于2023-01-04 12:58 被阅读0次

    一、HikariCP连接池

    springboot默认使用连接池HikariCP,不需要依赖
    如果application.properties配置文件
    spring.datasource.url=jdbc:mysql://localhost:3306/elm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    
    # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
    spring.datasource.hikari.connection-timeout=30000
    # 最小连接数
    spring.datasource.hikari.minimum-idle=5
    # 最大连接数
    spring.datasource.hikari.maximum-pool-size=15
    # 自动提交
    spring.datasource.hikari.auto-commit=true
    # 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),默认:10分钟
    spring.datasource.hikari.idle-timeout=600000
    # 连接池名字
    spring.datasource.hikari.pool-name=DatebookHikariCP
    # 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms,建议设置比数据库超时时长少60秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -->
    spring.datasource.hikari.max-lifetime=28740000
    
    或者application.yml配置文件
    spring:
        datasource:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/elm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
            username: root
            password: root
            hikari:
             #最小空闲连接数量
             minimum-idle: 5
             #从池返回的连接默认自动提交
             auto-commit: true
             #空闲连接最大时间,10秒
             idle-timeout: 10000
             #池中连接的最长生命周期
             max-lifetime: 1800000
             #数据库连接的超时时间
             connection-timeout: 30000
    

    二、druid连接池

    如果application.properties配置文件

    spring.datasource.druid.url=jdbc:mysql://localhost:3306/elm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    spring.datasource.druid.username=root
    spring.datasource.druid.password=root
    spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
     
    
    spring.datasource.druid.initial-size=1
    spring.datasource.druid.max-active=20
    spring.datasource.druid.min-idle=3
    spring.datasource.druid.max-wait=60000
    spring.datasource.druid.pool-prepared-statements=true
    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
    spring.datasource.druid.filters=stat,wall,slf4j
    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    

    或者application.yml配置文件

     spring:
        datasource:
            druid:
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://localhost:3306/elm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
              username: root
              password: root
              # 初始化大小,最小,最大
              initial-size: 5
              max-active: 20
              min-idle: 3
              # 配置获取连接等待超时的时间
              max-wait: 60000
              # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
              time-between-eviction-runs-millis: 60000
              # 配置一个连接在池中最小生存的时间,单位是毫秒
              min-evictable-idle-time-millis: 300000 
              # 打开PSCache,并且指定每个连接上PSCache的大小
              pool-prepared-statements: true
              max-pool-prepared-statement-per-connection-size: 20
              # 配置监控统计拦截的 Filter,去掉后监控界面 SQL 无法统计,wall 用于防火墙   日志 log4j
              filters: stat,wall,slf4j
              # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
              connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 
    

    1、利用starter方式

    引入依赖

    <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid-spring-boot-starter</artifactId>
          <version>1.1.20</version>
    </dependency>
    

    2、利用配置类方式

    引入依赖

    <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid</artifactId>
           <version>1.1.9</version>
    </dependency>
    

    创建配置类

    import javax.sql.DataSource;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.alibaba.druid.pool.DruidDataSource;
    
    @Configuration
    public class DataSourceConfig {
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.druid")
        public DataSource dataSource() {
            return new DruidDataSource();
        }
    }
    

    相关文章

      网友评论

          本文标题:springboot配置连接池

          本文链接:https://www.haomeiwen.com/subject/tavrcdtx.html