Spring boot 集成 Druid 数据源过程详解

下面是详细讲解“Spring Boot 集成 Druid 数据源过程详解”的攻略,包含两条示例:

1. 简介

Druid 作为一个高效且能够监控 SQL 执行的JDBC 连接池,被广泛应用于Java Web 开发中。在 Spring Boot 项目中,集成 Druid 数据源也是一个常见的需求。本文将会给出一份关于如何在 Spring Boot 中集成 Druid 数据源的详细攻略。

2. 添加依赖

在项目的 pom.xml 文件中添加如下依赖:

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

druid-spring-boot-starter 类库是 Druid 官方提供的用于在 Spring Boot 中集成 Druid 数据源的启动器类库,通过添加该依赖来实现 Druid 数据源的快速集成。

3. 配置数据源

在 Spring Boot 项目中,所有的配置都在 application.properties 或者 application.yml 文件中进行配置。下面是一个数据源相关的配置文件的示例:

application.yml 中配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

    # Druid 数据源相关配置
    type: com.alibaba.druid.pool.DruidDataSource
    maxActive: 10
    initialSize: 5
    maxWait: 60000
    minIdle: 1
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20

application.properties 中配置:

spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Druid 数据源相关配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.max-active=10
spring.datasource.initial-size=5
spring.datasource.max-wait=60000
spring.datasource.min-idle=1
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
spring.datasource.pool-prepared-statements=true
spring.datasource.max-pool-prepared-statement-per-connection-size=20

在配置文件中,我们指定了要使用的数据库连接、datasource 类型(DruidDataSource)以及连接池的各项参数。

4. 注入数据源

完成数据源的配置之后,我们即可在代码中使用该数据源。对于 Spring Boot 项目,我们通常使用 javax.sql.DataSource 代表数据源。 在 Spring Boot 项目中,使用 @Autowired 注解即可注入 Druid 数据源:

@Autowired
private DataSource dataSource;

在上述代码中,变量 dataSource 即为注入的 Druid 数据源。

5. 示例

示例一:查询学生表中的数据

在该示例中,我们将构建一个 Spring Boot 项目,实现查询学生表中的数据。通过以下步骤来完成该示例:

  1. 创建一个名为 students 的数据库,并创建一个名为 student 的表,其中包含 idname 两个字段。

  2. 编写以下代码:

@RestController
@RequestMapping("/students")
public class StudentController {

    @Autowired
    private DataSource dataSource;

    @GetMapping
    public List<String> getStudents() throws SQLException {
        List<String> students = new ArrayList<>();
        Connection connection = dataSource.getConnection();
        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM student");
        while (rs.next()) {
            students.add(rs.getString("name"));
        }
        return students;
    }
}
  1. 启动应用程序,访问 http://localhost:8080/students 即可查看学生表中的数据。

示例二:监控应用程序中的 SQL 执行情况

Druid 连接池除了具有高效以外,还提供了强大的监控功能。在该示例中,我们将展示如何在应用程序中启用该监控功能。

  1. 进入项目的配置文件(application.ymlapplication.properties),添加以下配置:
# Druid 监控配置
spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
      filter:
        stat:
          enabled: true
          exclusions: /static/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
  1. 启动应用程序,并访问 http://localhost:8080/druid/index.html,即可查看 SQL 执行的监控信息。

6. 结论

在本文中,我们详细讲述了如何在 Spring Boot 中集成 Druid 数据源,以及如何启用 Druid 连接池的监控功能。通过本文,我们相信您已经掌握了使用 Druid 数据源的相关技能,可以更加方便地在项目中使用该连接池。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot 集成 Druid 数据源过程详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java输入数据的知识点整理

    Java输入数据的知识点整理 在Java编程中,输入数据是非常重要的一部分,如果没有正确的输入数据,程序很难执行下去。本文将详细介绍Java输入数据的知识点整理,包括以下内容: Java.util.Scanner类 标准输入流和标准输出流 System.console()方法 示例说明 Java.util.Scanner类 Scanner类为读取用户输入提供…

    Java 2023年5月26日
    00
  • 跨站脚本攻击XSS原理与防范实例分析

    跨站脚本攻击XSS原理与防范实例分析 XSS攻击原理 跨站脚本攻击(XSS)是通过在web应用程序中注入恶意脚本来攻击用户的一种常见安全漏洞。攻击者可将攻击代码注入到正常的web页面中,一旦被用户浏览器执行,就能够窃取用户的敏感信息或者利用用户的身份进行恶意操作。 XSS攻击通常分为以下三种类型: 存储型攻击:攻击者将恶意脚本注入到web应用程序中的数据库中…

    Java 2023年6月16日
    00
  • SpringBoot热部署设置方法详解

    Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在开发过程中,我们经常需要修改代码并重新部署应用程序。为了提高开发效率,我们可以使用Spring Boot的热部署功能,它可以在不重启应用程序的情况下自动加载修改后的代码。本文将详细介绍如何设置Spring Boot的热部署,并提供两个示例。 …

    Java 2023年5月15日
    00
  • Java 实现使用Comparable按照我们指定的规则排序

    下面是详细讲解“Java 实现使用 Comparable 按照我们指定的规则排序”的攻略: 一、使用 Comparable 接口 Comparable 接口是 Java 中的一个接口,它有一个 compareTo 方法,用于指定对象排序的规则。如果一个类实现了 Comparable 接口,就可以使用 Collections.sort 或 Arrays.sor…

    Java 2023年5月27日
    00
  • Spring Security OAuth过期的解决方法

    下面是针对“Spring Security OAuth过期的解决方法”的完整攻略: Spring Security OAuth过期的解决方法 问题描述 在使用Spring Security OAuth时,有可能会遇到令牌(expired_token)过期的问题,导致无法访问受保护的资源。这时需要找到一种解决办法。 解决方法 方法一:自定义TokenServi…

    Java 2023年5月20日
    00
  • 养成良好java代码编码规范

    为了帮助大家养成良好的Java代码编码规范,我们可以采用以下步骤: 1. 确认编码规范 首先,我们需要确认所使用的编码规范。Java有多种编码规范,如Oracle官方的编码规范,Google的编码规范等。我们需要根据自己的工作需要选择一种合适的编码规范,并在工作中严格遵守。 2. 遵循命名规范 在编写Java代码时,变量、函数、类等的命名应该符合命名规范,具…

    Java 2023年5月20日
    00
  • java检查数组是否有重复元素的方法

    当我们需要在 Java 中检测一个数组是否包含重复的元素时,有多种方法可以实现。本文将介绍一些常用的方法,包括暴力破解、利用 Set 和利用 Arrays 类的 sort() 方法等。下面将一一讲解这些方法的步骤。 1、暴力破解 暴力破解的思路非常简单:遍历整个数组,检查每一个元素是否和后面的元素重复。如果发现重复的元素,则返回 true。否则,该数组中就不…

    Java 2023年5月26日
    00
  • Java8 新特性之日期时间对象及一些其他特性

    Java8 新特性之日期时间对象及一些其他特性 为什么需要新的日期时间API? 在Java 7之前,我们使用的日期时间API(java.util.Date和java.util.Calendar)存在几个问题: 非线程安全:在多线程环境下,如果多个线程同时操作日期时间对象,容易出现错误。 可变类型:java.util.Date和java.util.Calend…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部