SpringBoot3+Druid YAML配置
背景
Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。现在已经SpringBoot3,Druid的配置也需要随着更新。
SpringBoot3整合Druid
在SpringBoot3中整合Druid连接池,可以通过以下步骤进行配置:
-
添加依赖:在项目的
pom.xml
文件中添加Druid的Spring Boot Starter依赖。<druid.version>1.2.23</druid.version><!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter --> <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>${druid.version}</version> </dependency>
同时,确保已经添加了数据库驱动的依赖,例如MySQL:
<!--<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version> </dependency>--> <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>${postgresql.version}</version> </dependency>
-
配置YAML:在
application.yml
中配置数据源和Druid连接池的参数。spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: rootpassword: root123druid:initial-size: 5min-idle: 5max-active: 20max-wait: 60000time-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 30000validation-query: select 'x'test-while-idle: truetest-on-borrow: falsetest-on-return: falsepool-prepared-statements: falsefilters: stat,wall,slf4jmax-pool-prepared-statement-per-connection-size: -1use-global-data-source-stat: trueconnect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000web-stat-filter:enabled: trueurl-pattern: /*exclusions: /druid/*,*.js,*.gif,*.jpg,*.png,*.css,*.icostat-view-servlet:enabled: trueurl-pattern: /druid/*reset-enable: falselogin-username: druidlogin-password: druidallow: 127.0.0.1deny:
-
启动项目:启动Spring Boot应用后,Druid连接池将自动配置并可以使用。你可以通过访问Druid提供的监控页面来查看数据库连接池的状态。监控页面的访问地址通常是
http://localhost:8080/druid/login.html
,输入配置的用户名和密码即可登录。
以上步骤是基本方法,仅供,具体配置可能会根据Druid版本和Spring Boot版本的不同有所变化。在实际操作时,建议参考Druid的官方文档和Spring Boot的官方文档进行配置。
Druid监控
http://localhost:12666/api/system/druid/login.html
http://localhost:12666/api/system/druid/index.html
Github参考代码
当然你也可以参考SpringBoot3脚手架之MySpringBootAPI部分,下载即可开始使用,DRUID已配置。https://github.com/moshowgame/MySpringBootAPIhttps://github.com/moshowgame/MySpringBootAPI
filters=log4j "ClassNotFoundException: org.apache.log4j.Priority" issue
可以改为 filters: stat,wall,slf4j 或者干脆不要log4j和slf4j
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-09-29T19:24:22.892+08:00 ERROR 9648 --- [MySpringBootAPI] [ main] o.s.b.d.LoggingFailureAnalysisReporter : ***************************
APPLICATION FAILED TO START
***************************Description:Failed to bind properties under 'spring.datasource.druid' to com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceWrapper:Property: spring.datasource.druid.filtersValue: "stat,wall,log4j"Origin: class path resource [application-dev.yml] - 52:18Reason: java.lang.ClassNotFoundException: org.apache.log4j.PriorityAction:Update your application's configurationProcess finished with exit code 1
Application 完整YAML参考
server:port: 12666servlet:context-path: /apiundertow:threads:io: 4worker: 20url-charset: UTF-8
spring:banner:charset: UTF-8application:name: MySpringBootAPIfreemarker:request-context-attribute: requestsuffix: .htmlcontent-type: text/htmlenabled: truecache: falsecharset: UTF-8allow-request-override: falseexpose-request-attributes: trueexpose-session-attributes: trueexpose-spring-macro-helpers: truetemplate-loader-path: classpath:/templates/settings:number_format: 0.##mvc:static-path-pattern: /static/**servlet:multipart:max-file-size: 10MBmax-request-size: 10MBdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.postgresql.Driverurl: jdbc:postgresql://127.0.0.1:5432/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: postgrespassword: root123druid:initialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsefilters: stat,wall,slf4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000# 配置DruidStatFilterweb-stat-filter:enabled: trueurl-pattern: "/*"exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*,/system/druid/*"# 配置DruidStatViewServletstat-view-servlet:enabled: trueurl-pattern: "/system/druid/*"# IP白名单(没有配置或者为空,则允许所有访问)allow: localhost,127.0.0.1,192.168.*# IP黑名单 (存在共同时,deny优先于allow)deny: 10.1.*# 禁用HTML页面上的“Reset All”功能reset-enable: false# 登录名login-username: admin# 登录密码login-password: 123456
相关文章:

SpringBoot3+Druid YAML配置
背景 Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。现在已经SpringBoot3,Druid的配置也需要随…...

【c语言——指针详解(3)】
文章目录 一、字符指针变量二、数组指针变量1、 数组指针变量是什么?2、 数组指针变量怎么初始化 三、⼆维数组传参的本质四、函数指针变量1、函数指针变量的创建2、函数指针变量的使⽤3、两段有趣的代码1)typedef 关键字2)typedef和define的…...

QT系统学习篇(2)- Qt跨平台GUI原理机制
一、Qt工程管理 1、新建项目: 我们程序员新建项目对话框所有5类项目模板 Application: Qt的应用程序,包含Qt Quick和普通窗口程序。 Library: 它可以创建动态库、静态库、Qt Creator自身插件、Qt Quick扩展插件。 其他项目: 创建单元测试项目、子目录项…...

运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)
# MinIO 单机版环境搭建详解 ## 1. 简介 随着大数据时代的到来,数据存储的需求日益增大,如何有效地存储和管理大规模的非结构化数据成为许多企业和开发者面临的挑战。MinIO 作为一个高性能、分布式对象存储系统,致力于为用户提供简单、快速…...

Python技术深度探索:从基础到进阶的实践之旅(第一篇)
Python技术深度探索:从基础到进阶的实践之旅(第一篇) 在编程的世界里,Python以其简洁的语法、强大的库支持和广泛的应用领域,成为了无数开发者心中的“瑞士军刀”。无论是数据分析、机器学习、Web开发,还是…...

利士策分享,旅游是否要舟车劳顿才能尽兴?
利士策分享,旅游是否要舟车劳顿才能尽兴? 国庆假期,当夜幕降临,城市灯火阑珊,一场关于美食与等待的较量悄然上演。 李女士在北京天坛公园附近餐厅的等位经历——前方1053桌的壮观景象,不仅让人咋舌…...

C++入门——类的默认成员函数(取地址运算符重载)
文章目录 一、const成员函数二、取地址运算符重载总结 一、const成员函数 1.将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。2.const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进…...

学习记录:js算法(四十九):二叉树的层序遍历
文章目录 二叉树的层序遍历网上思路队列循环 总结 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的层序遍历 。 (即逐层地,从左到右访问所有节点)。 图一: 示例 1:如图一 输入:roo…...

【PCB工艺】表面贴装技术中常见错误
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 1、什么是SMT和SMD2、表面贴装技术的优势是什么?3、通孔和表面贴装技术之间的区别是什么?4、焊…...

3.使用条件语句编写存储过程(3/10)
引言 在现代数据库管理系统中,存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句,这些语句被保存在数据库中,可以被重复调用。存储过程不仅可以提高数据库操作的效率,还可以增强数据的安全性和一致性。此…...

Effective C++中文版学习记录(三)
Effective C中文版学习记录(三) 章节三:资源管理 进度:17/55 文章目录 Effective C中文版学习记录(三)条款13、以对象管理资源条款14、在资源管理类中小心copying行为条款15、在资源管理类中提供对原始资…...

VBA学习(76):文件合并神器/代码
1.定义变量 Dim savePath As String Dim SaveFile As String Dim dataFolder As String Dim FileSystem As Object Dim folder As Object Dim FileExtn As String Dim t As Integer Dim blnCkb As Boolean 2.自定保存文件名、选择待合并文件所在文件夹 Private Sub CkbName_…...

非农就业数据超预期,美联储降息步伐或放缓?
KlipC报道:当地时间10月4日,美国劳工部发布了最新的非农就业数据。数据显示,9月非农就业人数增加25.4万人,远超市场预期。失业率为4.1%,比上月略降0.1个百分点。平均时薪环比增长0.4%,亦高于市场预期。此外…...

每日OJ题_牛客_乒乓球筐_哈希_C++_Java
目录 牛客_乒乓球筐_哈希 题目解析 C代码 Java代码 牛客_乒乓球筐_哈希 乒乓球筐__牛客网 (nowcoder.com) 描述: nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类&#…...

基于SpringBoot+Vue的酒店客房管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

检索增强思考 RAT(RAG+COT):提升 AI 推理能力的强大组合
在人工智能领域,大型语言模型(LLMs)已经取得了显著的进展,能够生成类似人类的文本并回答各种问题。然而,它们在推理过程中仍面临一些挑战,例如缺乏对事实的准确把握以及难以处理复杂的多步骤问题。为了解决…...

python脚本实现Redis未授权访问漏洞利用
之前介绍过Redis未授权访问漏洞,本文使用python实现Redis未授权访问检测以及对应三种getshell。 1 测试环境准备 CentOS 7(192.168.198.66/24):安装 Redis 服务器并用 root 权限开启服务,关闭保护模式;安…...
简单线性回归分析-基于R语言
本题中,在不含截距的简单线性回归中,用零假设对统计量进行假设检验。首先,我们使用下面方法生成预测变量x和响应变量y。 set.seed(1) x <- rnorm(100) y <- 2*xrnorm(100) (a)不含截距的线性回归模型构建。 &…...

上海理工大学《2023年+2019年867自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《上海理工大学867自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2023年真题 2019年真题 Part1:2023年2019年完整版真题 2023年真题 2019年…...

计算机网络面试题——第三篇
1. TCP超时重传机制是为了解决什么问题 因为TCP是一种面向连接的协议,需要保证数据可靠传输。而在数据传输过程中,由于网络阻塞、链路错误等原因,数据包可能会丢失或者延迟到达目的地。因此,若未在指定时间内收到对方的确认应答&…...

Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
作者:来自 Elastic Jeff Vestal 我们很高兴地宣布 Elasticsearch 的开放推理 API 支持 Gemini 开发者 API。使用 Google AI Studio 时,开发者现在可以与 Elasticsearch 索引中的数据进行聊天、运行实验并使用 Google Cloud 的模型(例如 Gemin…...

react-问卷星项目(7)
实战 React表单组件 入门 重点在于change的时候改变state的值,类似vue的双向数据绑定v-model,即数据更新的时候页面同步更新,页面数据更新时数据源也能获得最新的值,只是Vue中设置在data中的属性默认绑定,React中需…...

【git】main|REBASE 2/6
很久没合并代码合并出现冲突,自动进入了 main|REBASE 2/6 的提示: 【git】main|REBASE 2/6 It looks like you’ve encountered several merge conflicts after a git pull operation while a rebase is in progress. Here’s how you can resolve these conflict…...

51单片机的水质检测系统【proteus仿真+程序+报告+原理图+演示视频】
1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器ph传感器浑浊度传感器蓝牙继电器LED、按键和蜂鸣器等模块构成。适用于水质监测系统,含检测和调整水温、浑浊度、ph等相似项目。 可实现功能: 1、LCD1602实时显示水温、水体ph和浑浊度 2、温…...

【python面试宝典7】线程池,模块和包
目录标 题目37:解释一下线程池的工作原理。题目38:举例说明什么情况下会出现KeyError、TypeError、ValueError。题目39:说出下面代码的运行结果。题目40:如何读取大文件,例如内存只有4G,如何读取一个大小为…...

Android input系统原理二
1.inputmanager启动源码分析 在SystemServer.java中构造了 inputmanagerservice的对象,在其构造函数中,最重要的是这个nativeInit函数。 下面是核心代码 inputManager new InputManagerService(context);public InputManagerService(Context context)…...

Oracle登录报错-ORA-01017: invalid username/password;logon denied
接上文:Oracle创建用户报错-ORA-65096: invalid common user or role name 我以为 按照上文在PDB里创建了用户,我以为就可以用PLSQL远程连接了,远程服务器上也安装了对应版本的Oracle客户端,但是我想多了,客户只是新建…...

JavaScript 获取浏览器本地数据的4种方式
JavaScript 获取浏览器本地数据的方式 我们在做Web开发中,客户端存储机制对于在浏览器中持久化数据至关重要。这些机制允许开发者存储用户偏好设置、应用状态以及其他关键信息,从而增强用户体验。本文将介绍几种常用的JavaScript获取浏览器本地数据的方…...

77寸OLED透明触摸屏有哪些应用场景
说到77寸OLED透明触摸屏,那可真是市场营销中的一大亮点,应用场景多到数不清!我这就给你细数几个热门的: 商业展示:这可是77寸OLED透明触摸屏的拿手好戏!在高端零售店铺里,它可以作为陈列窗口&am…...

二分解题的奇技淫巧都有哪些,你还不会吗?
先说一下我为什么要写这篇文章。 “二分“ 查找 or ”二分“ 答案的思想大家想必都知道吧(如果不懂,可以看一下我之前写的一篇文章)。 二分求解 可是呢?思想都会,做题的时候,就懵圈了。 这个题竟然考的是…...