SpringBoot开发案例之配置阿里巴巴Druid链接池

前言

很久没有更新Spring Boot系列文章,你说忙么?也多是,前段时间的关注点也许在其余方面了,最近项目中须要开发小程序,正好采用Spring Boot实现一个后端服务,后面会把相关的代码案例分享出来,不至于你们作小程序后端服务的时候一头雾水。java

在Spring Boot下默认提供了若干种可用的链接池(dbcp,dbcp2, tomcat, hikari),固然并不支持Druid,Druid来自于阿里系的一个开源链接池,它提供了很是优秀的监控功能,下面跟你们分享一下如何与Spring Boot集成。mysql

版本环境

Spring Boot 1.5.2.RELEASE、Druid 1.1.六、JDK1.7spring

系统集成

添加pom.xml依赖:

<!-- Jpa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- MySql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.6</version>
</dependency>

配置application.properties:

#数据源
spring.datasource.url=jdbc:mysql://192.168.1.66:3306/spring_boot?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
spring.datasource.initialSize=1
spring.datasource.minIdle=3
spring.datasource.maxActive=20
# 配置获取链接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测须要关闭的空闲链接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个链接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=30000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,而且指定每一个链接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql没法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,slf4j
# 经过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

配置yml文件(与上二选一)

spring:
  datasource:
      url: jdbc:mysql://192.168.1.66:3306/spring-boot?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password: root
      driver-class-name: com.mysql.jdbc.Driver
      platform: mysql
      type: com.alibaba.druid.pool.DruidDataSource
      # 下面为链接池的补充设置,应用到上面全部数据源中
      # 初始化大小,最小,最大
      initialSize: 1
      minIdle: 3
      maxActive: 20
      # 配置获取链接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测须要关闭的空闲链接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个链接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 30000
      validationQuery: select 'x'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打开PSCache,而且指定每一个链接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql没法统计,'wall'用于防火墙
      filters: stat,wall,slf4j
      # 经过connectProperties属性来打开mergeSql功能;慢SQL记录
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

配置Druid的监控统计功能

相关文章
相关标签/搜索