(四)Spring Boot学习——整合修改使用druid连接池

发布于:2024-11-29 ⋅ 阅读:(26) ⋅ 点赞:(0)

我的是使用springboot3的,对应的有整合的druid-spring-boot-3-starter的jar实现对springboot3的兼容。

<!--******************数据库相关配置************************-->
<!-- 1.配置数据库相关的jar包,连接池使用druids上,并引入整合springboot的包-->
 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
 </dependency>
 <!--1.1mysql-connector-java传递的依赖项有漏洞,原来版本为3.11开始的,本处指定使用无漏洞版本-->
 <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>4.28.2</version>
 </dependency>
 <!--2.保证 Spring JDBC 的依赖健全 -->
 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
      <version>3.3.5</version>
 </dependency>
 <!--3.专门的druid集成包,为springboot3提供更好兼容性,已经包含了druid-->
  <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-3-starter</artifactId>
        <version>1.2.20</version>
  </dependency>           

注意啊。虽然是为了兼容springboot3的,但是还是存在不兼容问题。我的就是使用1.2.23死活就是不生效,然后改成druid-spring-boot-3-starter是1.2.20就可以了。

因为做了兼容,不需要手动写class配置了。在properties中写如下配置:

#=======================配置数据库连接=================================================================================
# 本项目使用druid连接池,需要提前指定datasource的type
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 数据库source基础的配置内容,驱动、url及用户名密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/youdatabase?useUnicode=true&useSSL=false&autoReconnect=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
spring.datasource.username=youusername
spring.datasource.password=youpassword
# Druid 专属配置
# 避坑指示,springboot3有兼容支持的druid-spring-boot-3-start的包,
# 但是建议使用低版本的包,使用最新的容易出问题,本次就是报错故障调试好久。(要考虑版本兼容问题)
# 另外druid-spring-boot-3-start支持自动话配置,不需要手动配置
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=5
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.validation-query=SELECT 1
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
# druid-spring-3自动支持,StatViewServlet 配置
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
spring.datasource.druid.stat-view-servlet.deny=
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456
# druid-spring-3自动支持,WebStatFilter 配置
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*

最后就是最主要使用druid的原因了,他的性能监控。http://localhost:8080/druid/login.html