当前位置: 首页 > news >正文

SpringBoot3+Druid YAML配置

背景

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

SpringBoot3整合Druid

在SpringBoot3中整合Druid连接池,可以通过以下步骤进行配置:

  1. 添加依赖:在项目的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>
  2. 配置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:
  3. 启动项目:启动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/MySpringBootAPIicon-default.png?t=O83Ahttps://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

http://www.lryc.cn/news/454851.html

相关文章:

  • 【c语言——指针详解(3)】
  • QT系统学习篇(2)- Qt跨平台GUI原理机制
  • 运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)
  • Python技术深度探索:从基础到进阶的实践之旅(第一篇)
  • 利士策分享,旅游是否要舟车劳顿才能尽兴?
  • C++入门——类的默认成员函数(取地址运算符重载)
  • 学习记录:js算法(四十九):二叉树的层序遍历
  • 【PCB工艺】表面贴装技术中常见错误
  • 3.使用条件语句编写存储过程(3/10)
  • Effective C++中文版学习记录(三)
  • VBA学习(76):文件合并神器/代码
  • 非农就业数据超预期,美联储降息步伐或放缓?
  • 每日OJ题_牛客_乒乓球筐_哈希_C++_Java
  • 基于SpringBoot+Vue的酒店客房管理系统
  • 检索增强思考 RAT(RAG+COT):提升 AI 推理能力的强大组合
  • python脚本实现Redis未授权访问漏洞利用
  • 简单线性回归分析-基于R语言
  • 上海理工大学《2023年+2019年867自动控制原理真题》 (完整版)
  • 计算机网络面试题——第三篇
  • Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
  • react-问卷星项目(7)
  • 【git】main|REBASE 2/6
  • 51单片机的水质检测系统【proteus仿真+程序+报告+原理图+演示视频】
  • 【python面试宝典7】线程池,模块和包
  • Android input系统原理二
  • Oracle登录报错-ORA-01017: invalid username/password;logon denied
  • JavaScript 获取浏览器本地数据的4种方式
  • 77寸OLED透明触摸屏有哪些应用场景
  • 二分解题的奇技淫巧都有哪些,你还不会吗?
  • LeetCode-871 最低加油次数