当前位置:   article > 正文

springboot项目整合druid数据库连接池_application-druid.yml

application-druid.yml

Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apache开源;

Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;

Druid连接池内置强大的监控功能,其中的StatFilter功能,能采集非常完备的连接池执行信息,方便进行监控,而监控特性不影响性能。

Druid连接池内置了一个监控页面,提供了非常完备的监控信息,可以快速诊断系统的瓶颈。

SpringBoot 1.x版本默认使用的的tomcat的jdbc连接池,由于jdbc性能,稳定性,监控能力都不不太好,所以SpringBoot 2.x版本后 默认连接池已经替换成了HikariCPHikariCP性能强、速度快、口碑好、代码少和稳定,暂时不推荐替换成成其他连接池。
这里记录springboot项目整合druid数据库连接池中间件:

资源准备及版本说明

淘宝优惠券 www.fenfaw.net

编程工具:IDEA

JDK版本:1.8

Maven版本:Apache Maven 3.6.3

springboot版本:2.4.4

mybatis版本:1.3.2

mysql版本:5.1.48

druid版本:1.1.21

创建mavem项目

通过IDEA创建很便捷,参考《IDEA创建SpringBoot的maven项目》,springboot项目整合mybatis参考《springboot项目整合mybatis》。

配置pom.xml

druidpom依赖有两个版本,一个需要编写配置文件,一个是自动配置的,这里选择自动配置版本

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.1.21</version>
  5. </dependency>

完整pom.xml配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <parent>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-parent</artifactId>
  9. <version>2.4.4</version>
  10. <relativePath/> <!-- lookup parent from repository -->
  11. </parent>
  12. <groupId>org.example</groupId>
  13. <artifactId>springboot-druid</artifactId>
  14. <version>1.0-SNAPSHOT</version>
  15. <properties>
  16. <java.version>1.8</java.version>
  17. <mybatis.version>1.3.2</mybatis.version>
  18. <mysql.version>5.1.48</mysql.version>
  19. <druid.version>1.1.9</druid.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-web</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter-test</artifactId>
  29. <scope>test</scope>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.mybatis.spring.boot</groupId>
  33. <artifactId>mybatis-spring-boot-starter</artifactId>
  34. <version>${mybatis.version}</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>mysql</groupId>
  38. <artifactId>mysql-connector-java</artifactId>
  39. <version>${mysql.version}</version>
  40. </dependency>
  41. <!-- <dependency>-->
  42. <!-- <groupId>com.alibaba</groupId>-->
  43. <!-- <artifactId>druid</artifactId>-->
  44. <!-- <version>${druid.version}</version>-->
  45. <!-- </dependency>-->
  46. <dependency>
  47. <groupId>com.alibaba</groupId>
  48. <artifactId>druid-spring-boot-starter</artifactId>
  49. <version>1.1.21</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.projectlombok</groupId>
  53. <artifactId>lombok</artifactId>
  54. <optional>true</optional>
  55. </dependency>
  56. </dependencies>
  57. <build>
  58. <plugins>
  59. <plugin>
  60. <groupId>org.springframework.boot</groupId>
  61. <artifactId>spring-boot-maven-plugin</artifactId>
  62. </plugin>
  63. </plugins>
  64. </build>
  65. </project>

配置application.yml

application.yml配置文件中需要配置druid的相关信息

配置说明如下:

完整application.yml配置如下:

  1. server:
  2. port: 8888
  3. spring:
  4. application:
  5. name: springboot-druid
  6. datasource:
  7. username: root
  8. password: 123456
  9. url: jdbc:mysql://localhost:3306/spring-boot-test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
  10. driver-class-name: com.mysql.jdbc.Driver
  11. type: com.alibaba.druid.pool.DruidDataSource # 数据库连接池类别
  12. druid:
  13. initial-size: 5 # 初始化大小
  14. min-idle: 10 # 最小连接数
  15. max-active: 20 # 最大连接数
  16. max-wait: 60000 # 获取连接时的最大等待时间
  17. min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒
  18. time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒
  19. filters: stat,wall # 配置扩展插件:stat-监控统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计
  20. validation-query: SELECT 1 # 检测连接是否有效的 SQL语句,为空时以下三个配置均无效
  21. test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能
  22. test-on-return: true # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能
  23. test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开启,不影响性能
  24. stat-view-servlet:
  25. enabled: true # 是否开启 StatViewServlet
  26. allow: 127.0.0.1 # 访问监控页面 白名单,默认127.0.0.1
  27. deny: 192.168.56.1 # 访问监控页面 黑名单
  28. login-username: admin # 访问监控页面 登陆账号
  29. login-password: admin # 访问监控页面 登陆密码
  30. filter:
  31. stat:
  32. enabled: true # 是否开启 FilterStat,默认true
  33. log-slow-sql: true # 是否开启 慢SQL 记录,默认false
  34. slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒
  35. merge-sql: false # 合并多个连接池的监控数据,默认false
  36. # mybatis配置
  37. mybatis:
  38. mapper-locations: classpath:mapper/*Mapper.xml
  39. type-aliases-package: com.dandelion.model
  40. # 输出sql语句日志
  41. logging:
  42. level:
  43. com:
  44. springboot:
  45. dao: debug

访问druid监控中心

启动项目:

在浏览器中输入http://IP:端口号/druid/index.html访问监控中心

如果有配置登录账号密码,则需要进行登录:

定义测试接口查询数据库:

监控中心记录访问情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/355084?site
推荐阅读
相关标签
  

闽ICP备14008679号