Spring Druid数据源的配置步骤及注意事项

一、为什么使用Druid?

Druid 是由阿里巴巴开发的数据库连接池组件,Druid 在监控、可扩展性、稳定性方面具有非常大的优势。同时,Druid 提供了一个界面,可以实时监控连接池和 SQL 执行情况,方便开发人员进行分析和优化。

在 Spring 项目中,使用 Druid 可以提高数据库的连接效率和可靠性,具有非常大的意义。

二、使用Druid的配置步骤

1. 添加Druid和MySQL依赖库

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

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
</dependency>

2. 配置Druid连接池参数

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 配置Druid连接池
spring.datasource.initial-size=5
spring.datasource.min-idle=5
spring.datasource.max-active=20
spring.datasource.max-wait=60000
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validation-query=select 1 from dual
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false

# 配置Druid监控统计
spring.datasource.filters=stat
spring.datasource.web-stat-filter.url-pattern=/*

# 配置Druid登录界面
spring.datasource.druid.login-username=admin
spring.datasource.druid.login-password=admin
spring.datasource.druid.reset-enable=false

3. 注册Druid的Servlet和Filter

在 Spring Boot 中,可以在 Application 中通过注解 @ServletComponentScan 扫描 Servlet 和 Filter。

@ServletComponentScan
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

4. 配置Druid的监控页面

在 Spring Boot 中,可以通过配置 Druid 的 Servlet 和 Filter 实现 Druid 监控页面的访问,在配置文件中添加以下配置信息。

spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.reset-enable=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin

spring.datasource.druid.stat-view-filter.enabled=true
spring.datasource.druid.stat-view-filter.url-pattern=/*
spring.datasource.druid.stat-view-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
spring.datasource.druid.stat-view-filter.reset-enable=true
spring.datasource.druid.stat-view-filter.login-username=admin
spring.datasource.druid.stat-view-filter.login-password=admin

三、注意事项

1. 配置连接池时需要对参数进行合理调整

在实际使用中,需要根据实际情况调整配置参数,保证连接池的最佳性能。

initialSize:初始化连接数;

minIdle:最小空闲连接数;

maxActive:最大活跃连接数;

maxWait:获取连接的最大等待时间;

timeBetweenEvictionRunsMillis:间隔多久进行一次检测,检测需要关闭的空闲连接,单位是毫秒;

minEvictableIdleTimeMillis:一个连接在池中最小空闲时间,单位是毫秒;

validationQuery:用来检测连接是否有效的 SQL 语句;

testWhileIdle:是否开启检测连接是否有效;

testOnBorrow:在获取连接的时候是否检测连接是否有效;

testOnReturn:在归还连接的时候是否检测连接是否有效;

2. 注意Druid监控的安全问题

Druid 的监控功能提供了实时监控连接和 SQL 执行情况的界面,方便开发人员进行分析和优化。但是,由于监控界面并没有进行身份验证,因此可能会导致安全问题。

为了保证监控功能的安全性,需要在生产环境中禁用监控功能,并添加身份验证功能。

3. 需要在代码中进行实体类的注入

在使用 Spring Boot 和 Druid 时,需要在代码中注入 DataSource,具体实现方式可以参考以下代码:

@Autowired
private DataSource dataSource;

4. 配置Druid连接池时可能会遇到一些问题

在配置 Druid 连接池时,可能会出现一些问题,如运行时报错、连接池无法初始化等问题。如果遇到问题,可以查看控制台的日志信息,排查错误原因。

总结

本文介绍了使用 Druid 连接池的注意事项和配置步骤。在使用 Druid 时,需要合理调整连接池参数,注意监控安全问题,并进行实体类的注入。如果遇到连接池配置问题,可以查看控制台的日志信息,排查问题所在。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-25 18:38
下一篇 2024-12-25 18:38

相关推荐

  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Spring Boot 集成 Jacoco

    本文将从以下几个方面介绍如何在 Spring Boot 中集成 Jacoco:1、Jacoco 概述;2、Spring Boot 集成 Jacoco 的配置;3、生成 Jacoco…

    编程 2025-04-29
  • Python初学者指南:第一个Python程序安装步骤

    在本篇指南中,我们将通过以下方式来详细讲解第一个Python程序安装步骤: Python的安装和环境配置 在命令行中编写和运行第一个Python程序 使用IDE编写和运行第一个Py…

    编程 2025-04-29
  • Spring Boot中发GET请求参数的处理

    本文将详细介绍如何在Spring Boot中处理GET请求参数,并给出完整的代码示例。 一、Spring Boot的GET请求参数基础 在Spring Boot中,处理GET请求参…

    编程 2025-04-29
  • 正五边形画法步骤图解

    正五边形是一种经典的几何图形,其独特的构造方式给它带来了无限的美感和艺术价值。本篇文章将从多个方面详细阐述正五边形的画法步骤图解,帮助您轻松get到绘制正五边形的窍门。 一、构造正…

    编程 2025-04-29
  • 如何在Spring Cloud中整合腾讯云TSF

    本篇文章将介绍如何在Spring Cloud中整合腾讯云TSF,并提供完整的代码示例。 一、TSF简介 TSF (Tencent Serverless Framework)是腾讯云…

    编程 2025-04-29
  • Python函数重载的使用方法和注意事项

    Python是一种动态语言,它的函数重载特性有些不同于静态语言,本文将会从使用方法、注意事项等多个方面详细阐述Python函数重载,帮助读者更好地应用Python函数重载。 一、基…

    编程 2025-04-28
  • 如何使用Spring Boot ElasticJob进行配置覆盖

    本文将详细介绍如何使用Spring Boot ElasticJob进行配置覆盖。 一、目录结构 我们需要准备两个目录,分别是“elastic-job-lite-spring-boo…

    编程 2025-04-28
  • Akka 设置邮箱大小的方法和注意事项

    为了保障系统的稳定性和可靠性,Akka 允许用户设置邮箱大小。本文将介绍如何在 Akka 中设置邮箱大小,并且提供一些注意事项,以帮助读者解决可能遇到的问题。 一、设置邮箱大小 A…

    编程 2025-04-28
  • Spring Boot中使用DTO、Controller、Service、Mapper进行开发

    本文将介绍如何在Spring Boot中使用DTO、Controller、Service、Mapper等技术进行开发。 一、DTO DTO(Data Transfer Object…

    编程 2025-04-28

发表回复

登录后才能评论