30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <3>5分钟集成好druid并使用druid自带监控工具监控sql请求

devtools/2025/1/17 19:45:39/

快速导航

<1> 5分钟快速创建一个springboot web项目
<2> 5分钟集成好最新版本的开源swagger ui,并使用ui操作调用接口
<3> 5分钟集成好druid并使用druid自带监控工具监控sql请求
<4> 5分钟集成好mybatisplus并使用mybatisplus generator自动生成代码
<5> 5分钟集成好caffeine并使用注解操作缓存
<6> 5分钟集成好前端页面

demo项目代码下载

目录

  • 准备工作
    • 1. 安装mysql
    • 2. 使用idea database插件创建库和表
    • 3. maven 安装druid依赖
  • 配置druid
  • 使用监控查看统计数据
  • 总结

Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。这篇文章将会介绍如何继承druid并且配置好druid监控。

在这里插入图片描述

准备工作

sql_20">1. 安装mysql

mariaDB 官网下载地址

在这里插入图片描述
注意分配buffer size小一点,不然操作系统没有那么多内存会导致mysql启动不了。

2. 使用idea database插件创建库和表

在这里插入图片描述
创建连接,记得先测试下连接可不可用,如果缺少驱动,让idea自动下载合适版本驱动即可。

在这里插入图片描述
创建schema

在这里插入图片描述
或者执行下面sql

sql">create table test_user
(id          bigint auto_incrementprimary key,name        varchar(100) null,remark      varchar(100) null,create_at   bigint       null comment '创建人',update_at   bigint       null comment '更新人',create_time bigint       null comment '创建时间',update_time bigint       null comment '更新时间'
)comment '测试用户';

JDBC 测试下服务是否可以正常链接
在这里插入图片描述

package com.example.demo.jdbc;import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;@SpringBootTest
public class JdbcTest {@Testpublic void testJdbcSelect() {// 数据库连接信息String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "123456";// SQL查询语句String sql = "SELECT * FROM test_user";try (Connection conn = DriverManager.getConnection(url, user, password);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql)) {// 处理结果集while (rs.next()) {// 假设表中有一个名为'id'的列int id = rs.getInt("id");System.out.println("ID: " + id);}System.out.println("Query executed successfully.");} catch (Exception e) {System.out.println("Error executing SQL query");e.printStackTrace();}}
}

准备工作完成

druid_98">3. maven 安装druid依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.20</version>
</dependency>
<!-- 如果引用过驱动这里就不需要引入了 -->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>

注意这里的artifactId 是 druid-spring-boot-3-starter , druid-spring-boot-starter 只能在springboot2.x下使用。

druid_115">配置druid

在application.yml中添加下面配置:

spring:application:name: demodevtools:add-properties: truedatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaidruid:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456# Druid 数据源的其他配置initial-size: 5max-active: 20min-idle: 5max-wait: 60000pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20validation-query: SELECT 1test-on-borrow: truetest-on-return: falsetest-while-idle: truetime-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 300000filters: stat,wall,slf4j # 启用的过滤器stat-view-servlet:enabled: trueurl-pattern: /druid/*login-username: adminlogin-password: admin123reset-enable: falseweb-stat-filter:enabled: trueurl-pattern: /*exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

配置完成之后启动服务

在这里插入图片描述
出现inited 说明druid初始化成功!

使用监控查看统计数据

打开 http://localhost:8080/druid/
在这里插入图片描述
输入配置的账号和密码 admin/admin123

在这里插入图片描述

总结

  1. 注意druid的starter版本,springboot2.x中使用的starter讲在3.0中无法使用。
  2. 生产环境中不要使用druid监控。
  3. spring.datasource.url 需要进行配置而不是配置spring.datasource.druid.url

http://www.ppmy.cn/devtools/151344.html

相关文章

【Python】-- 趣味代码 - 发牌游戏

文章目录 文章目录 01 发牌游戏设计框架定义`Card`类定义`Hand`类定义`Poke`类(继承自`Hand`类)主程序02 发牌游戏程序代码01 发牌游戏设计框架 这段代码是一个简单的发牌游戏程序,使用面向对象的方式实现了扑克牌的发牌过程。以下是各部分的介绍: 定义Card类 属性: ra…

使用vue3实现语音交互的前端页面

代码地址&#xff1a;https://github.com/ZZD3627/my-third-vue.git 需求 1.前端实现录音并将音频传到通过http请求将音频传递到后端 2.基于后端识别的语音及后端返回的内容进行语音沟通实现 1.使用MediaRecorder在前端使用录音功能 2.使用SpeechSynthesis实现将后端传来的文…

栈算法篇——LIFO后进先出,数据与思想的层叠乐章(下)

文章目录 前言第一章&#xff1a;比较含退格的字符串1.1 题目链接&#xff1a;https://leetcode.cn/problems/backspace-string-compare/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 第二章&#xff1a;基本计算器||2.1 题目链接&a…

Clojure语言的正则表达式

Clojure语言中的正则表达式 正则表达式是一种用于描述字符串模式的强大工具&#xff0c;在进行文本处理和验证时显得尤为重要。Clojure作为一门现代的编程语言&#xff0c;充分利用了Java的正则表达式功能&#xff0c;使得处理字符串和模式匹配变得更加简洁和高效。本文将深入…

ASP.NET Core - .NET 6 以上版本的入口文件

ASP.NET Core - .NET 6 以上版本的入口文件 自从.NET 6 开始&#xff0c;微软对应用的入口文件进行了调整&#xff0c;移除了 Main 方法和 Startup 文件&#xff0c;使用顶级语句的写法&#xff0c;将应用初始化的相关配置和操作全部集中在 Program.cs 文件中&#xff0c;如下&…

HarmonyOS NEXT开发进阶(七):页面跳转

文章目录 一、前言二、页面跳转三、页面返回四、页面返回前增加确认对话框4.1 系统的默认询问框4.2 自定义询问框 五、拓展阅读 一、前言 APP开发过程中&#xff0c;多页面跳转场景十分常见&#xff0c;例如&#xff0c;登录 -> 首页 -> 个人中心。在鸿蒙开发中&#xf…

go采集注册表

package mainimport ("fmt""golang.org/x/sys/windows/registry""log""os""strconv""strings" )func USBSTOR_Enum() {// 打开注册表键keyPath : SYSTEM\CurrentControlSet\Services\USBSTOR\Enumk, err : regist…

双线性插值算法:原理、实现、优化及在图像处理和多领域中的广泛应用与发展趋势(一)

一、头文件和命名空间 #include <opencv2/opencv.hpp>&#xff1a;这是 OpenCV 库的头文件&#xff0c;它包含了许多用于图像处理、计算机视觉任务的类和函数。OpenCV 是一个强大的开源计算机视觉库&#xff0c;提供了大量的工具和算法&#xff0c;可用于图像的读取、处…