Spring Boot3.x以上版本的项目中切换数据库连接池为Druid(德鲁伊)

本文介绍了如何在SpringBoot项目中加入druid-spring-boot-starter和druid-spring-boot-3-starter依赖,以及如何在application.properties中配置数据库连接,特别提到了在SpringBoot3中切换到Druid连接池的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在 Spring Boot 项目中加入druid-spring-boot-starter依赖 (点击查询最新版本)和druid-spring-boot-3-starter依赖  (点击查询最新版本)

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

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

2、在项目的application.properties文件中添加配置

# 方式一
# 驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库连接的url
spring.datasource.url= 
# 连接数据库的用户名
spring.datasource.username=
# 连接数据库的密码
spring.datasource.password=
# ...其他配置(可选,不是必须的,使用内嵌数据库的话上述三项也可省略不填)


# 方式二
# spring.datasource.druid.driver-class-name=
# spring.datasource.druid.url=
# spring.datasource.druid.username=
# spring.datasource.druid.password=

注意:springboot3中切换为druid连接池必须添加druid-spring-boot-3-starter依赖,否则需要通过自定义配置类的方法才能切换成功。(原因还未搞明白。)

补充:配置类的代码放在这里了,需要的自取。

@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.druid")
    public DataSource getDataSource() {
        return DruidDataSourceBuilder.create().build();
    }
}

### 更换数据库连接池Druid 的配置及使用说明 #### 1. 添加依赖 为了在项目中使用 Druid 数据库连接池,需要引入相应的 Maven 或 Gradle 依赖。以下是基于 Spring Boot 的 Maven 配置方式: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency> ``` 通过上述依赖可以集成 Druid 连接池Spring Boot 应用程序中[^5]。 --- #### 2. 修改 `application.yml` 配置文件 在 Spring Boot 中,可以通过修改 `application.yml` 文件来完成 Druid 数据库连接池的配置。以下是一个完整的配置示例: ```yaml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC initial-size: 5 max-active: 20 min-idle: 5 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: SELECT 1 FROM DUAL test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 ``` 此配置定义了数据库的基本信息以及连接池的行为参数,例如初始连接数 (`initial-size`)、最大活动连接数 (`max-active`) 和最小空闲连接数 (`min-idle`) 等[^2]。 --- #### 3. 使用 Properties 文件替代 YML (可选) 如果更倾向于使用 `.properties` 文件作为配置管理工具,则可以在 `application.properties` 文件中添加类似的配置项。例如: ```properties spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.username=root spring.datasource.druid.password=123456 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC 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.validation-query=SELECT 1 FROM DUAL spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.test-while-idle=true ``` 这种方式同样适用于不希望使用 YAML 格式的开发者[^4]。 --- #### 4. 监控与扩展功能 Druid 提供了强大的监控和扩展能力,支持统计 SQL 查询性能并可视化展示。启用监控功能需额外配置 Web 控制台的相关设置。具体操作如下: ##### (1)增加控制台依赖 在项目的 `pom.xml` 文件中加入以下内容: ```xml <dependency> <groupId>com Alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.8</version> </dependency> ``` ##### (2)配置过滤器 编辑 `web.xml` 文件或通过 Java 配置类注册 DruidStatFilter 来拦截请求日志记录。 ```java @Bean public FilterRegistrationBean statFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new StatFilter()); filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } ``` 以上代码片段展示了如何排除静态资源访问的日志干扰[^1]。 --- #### 总结 通过引入合适的依赖并将必要的属性映射至应用程序上下文中即可成功切换Druid 数据库连接池。其核心优势在于减少重复建立物理链接带来的开销,从而提升整体效率[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值