SpringBoot3+Druid YAML配置

news/2024/9/30 10:15:26 标签: DRUID, 监控, Springboot3

背景

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.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&serverTimezone=Asia/Shanghai
        username: root
        password: root123
        druid:
          initial-size: 5
          min-idle: 5
          max-active: 20
          max-wait: 60000
          time-between-eviction-runs-millis: 60000
          min-evictable-idle-time-millis: 30000
          validation-query: select 'x'
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          pool-prepared-statements: false
          filters: stat,wall,slf4j
          max-pool-prepared-statement-per-connection-size: -1
          use-global-data-source-stat: true
          connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
          web-stat-filter:
            enabled: true
            url-pattern: /*
            exclusions: /druid/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico
          stat-view-servlet:
            enabled: true
            url-pattern: /druid/*
            reset-enable: false
            login-username: druid
            login-password: druid
            allow: 127.0.0.1
            deny:
  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.filters
    Value: "stat,wall,log4j"
    Origin: class path resource [application-dev.yml] - 52:18
    Reason: java.lang.ClassNotFoundException: org.apache.log4j.Priority

Action:

Update your application's configuration


Process finished with exit code 1

 Application 完整YAML参考

server:
  port: 12666
  servlet:
      context-path: /api
  undertow:
    threads:
      io: 4
      worker: 20
    url-charset: UTF-8
spring:
    banner:
      charset: UTF-8
    application:
        name: MySpringBootAPI
    freemarker:
        request-context-attribute: request
        suffix: .html
        content-type: text/html
        enabled: true
        cache: false
        charset: UTF-8
        allow-request-override: false
        expose-request-attributes: true
        expose-session-attributes: true
        expose-spring-macro-helpers: true
        template-loader-path: classpath:/templates/
        settings:
          number_format: 0.##
    mvc:
      static-path-pattern: /static/**
    servlet:
      multipart:
        max-file-size: 10MB
        max-request-size: 10MB
    datasource:
      type: com.alibaba.druid.pool.DruidDataSource
      driverClassName: org.postgresql.Driver
      url: jdbc:postgresql://127.0.0.1:5432/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
      username: postgres
      password: root123
      druid:
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        filters: stat,wall,slf4j
        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
        # 配置DruidStatFilter
        web-stat-filter:
          enabled: true
          url-pattern: "/*"
          exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*,/system/druid/*"
        # 配置DruidStatViewServlet
        stat-view-servlet:
          enabled: true
          url-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.niftyadmin.cn/n/5684882.html

相关文章

SpringCloud 2023 LoadBalancer介绍、使用、获取服务列表原理、负载均衡算法

目录 1. 介绍2. 使用3 获取服务列表原理4. 负载均衡算法 1. 介绍 功能: 提供客户端的负载均衡算法&#xff0c;将请求均摊到多个服务器上。属于客户端负载均衡(Nginx属于服务端负载均衡)&#xff0c;会将服务列表缓存到JVM本地&#xff0c;然后客户端自己选择请求服务器支持S…

多处理器的概念与对比

SISD, SIMD, MISD, 和 MIMD 代表了并行计算的四种基本架构&#xff0c;它们描述了处理器如何处理指令和数据。 理解这些架构的关键在于区分指令流&#xff08;Instruction Stream&#xff09;和数据流&#xff08;Data Stream&#xff09;是单一的还是多重的。 1. SISD (Singl…

Web APIs 3:事件流、事件委托

Web APIs 3&#xff08;事件流、事件委托&#xff09; 1.事件流 事件流&#xff1a;事件完整执行过程中的流动路径捕获阶段&#xff1a;从DOM根元素开始去执行对应的事件&#xff08;从外到里&#xff09; DOM.addEventListener(事件类型&#xff0c;事件处理函数&#xff0…

redis和mysql端口修改

因为之前有过被删库勒索的情况所以&#xff0c;今天记录一下怎么修改端口。 redis 要修改Redis的端口&#xff0c;您需要编辑Redis配置文件&#xff0c;通常名为redis.conf。 找到Redis配置文件&#xff1a; 在Linux系统上&#xff0c;该文件通常位于/etc/redis/redis.conf…

生产环境升级mysql流程及配置主从服务

之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客 生产环境升级mysql8.4.x流程 安装mysql 参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客…

阳光能源嵌入式面试及参考答案(2万字长文)

管道能够承载的最大传输数据量是多少? 在嵌入式系统中,管道能够承载的最大传输数据量取决于多个因素。 首先,管道的容量受到操作系统的限制。不同的操作系统对管道的大小有不同的规定。一般来说,管道的容量通常是有限的,并且在不同的操作系统版本和配置下可能会有所不同。…

在 C++ std::set 中如何利用不同类型的值进行搜索?

在 C 集合中如何利用不同类型的值进行搜索 一、背景二、初衷三、is_transparent四、总结 一、背景 C14 引入了一项引人注目的功能&#xff0c;为关联容器弥补了某些案例中长久以来的不足之处&#xff1a;即允许使用在语义上被视为键&#xff0c;但在技术上并非真正键的值对关联…

技术成神之路:设计模式(十八)适配器模式

介绍 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许接口不兼容的类可以协同工作&#xff0c;通过将一个类的接口转换成客户端所期望的另一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的类可以一起工作。 1.定义 适配…