SpringBoot在yml配置文件中配置druid

本文详细介绍了在不同版本的Druid连接池中如何配置过滤器(filter),包括从旧版本到1.1.10版本的变化。展示了具体的YAML配置样例,并指出常见配置错误及其原因。

最新版(我的是1.0.18版本,再往上可能不同处理方式的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter:取自(https://www.cnblogs.com/yang-young-young/p/8137759.html)

spring:
  ##数据库连接信息
  datasource:
    url: jdbc:mysql://localhost:3306/young
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    ###################以下为druid增加的配置###########################
    type: com.alibaba.druid.pool.DruidDataSource
    # 下面为连接池的补充设置,应用到上面所有数据源中
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    # 合并多个DruidDataSource的监控数据
    useGlobalDataSourceStat: true
    ###############以上为配置druid添加的配置########################################

下面是1.1.10版本的druid配置filter:

spring:
  ##数据库连接信息
  datasource:
    url: jdbc:mysql://localhost:3306/day05
    username: root
    password: 15963asd
    driver-class-name: com.mysql.jdbc.Driver
    ###################以下为druid增加的配置###########################
    type: com.alibaba.druid.pool.DruidDataSource
    # 下面为连接池的补充设置,应用到上面所有数据源中
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙,此处是filter修改的地方
    filters:
      commons-log.connection-logger-name: stat,wall,log4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    # 合并多个DruidDataSource的监控数据
    useGlobalDataSourceStat: true

顺便附一下出现在springboot中yml配置文件里面配置druid的filter配置错误的信息:

Property: spring.datasource.filters     Value: stat,wall,log4j     Origin: class path resource [application.yml]:29:14     Reason: Unable to set value for property filters

<think>嗯,用户问的是如何在Spring Boot的properties文件中配置数据库连接。首先我需要回忆一下Spring Boot的数据库配置相关知识。记得在Spring Boot中,通常会在application.properties或者application.yml文件里配置数据源相关的属性。 用户可能用的是MySQL,因为之前的引用里有提到MySQL的URL。所以基本配置应该包括url、username、password、driver-class-name这些。对了,不同的数据库驱动类名可能不一样,比如MySQL是com.mysql.cj.jdbc.Driver,而旧版本可能用的是com.mysql.jdbc.Driver,需要注意版本问题。 另外,用户提到的引用里有druid连接池和分页配置,可能需要补充这部分内容。不过用户的问题主要是关于数据库连接的基本配置,可能不需要深入连接池的细节,但或许可以提到如何切换不同的连接池,比如HikariCP默认,或者使用Druid需要额外配置。 然后要确保语法正确,比如在properties文件中的格式,比如spring.datasource.url=jdbc:mysql://...,还有注意特殊字符是否需要转义,比如&符号在properties文件中应该写成&,或者使用URI编码。例如,在示例中的URL里用了&来分隔参数,这一点需要正确示范。 另外,可能需要提到配置连接池的一些常用参数,比如初始大小、最大连接数等,但用户可能只需要基础配置。同时,分页配置可能属于MyBatis的插件部分,比如PageHelper,但用户的问题集中在数据库连接,这部分可能暂时不需要涉及,除非用户进一步询问。 还要检查是否需要驱动依赖,比如在pom.xml中添加mysql-connector-java依赖,否则即使配置正确也会报错。不过用户的问题是关于properties文件的配置,可能已经知道需要添加依赖,但或许应该提一下确保依赖存在。 最后,生成相关问题的时候,要考虑用户可能的后续问题,比如连接池配置、多数据源、SSL设置或者异常处理等。这样能帮助用户更全面地了解相关配置。</think>### 在 Spring Boot 中配置数据库连接的步骤 #### 1. **基础配置(MySQL 示例)** 在 `application.properties` 文件中添加以下核心配置项: ```properties # 数据库连接基础配置 spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` #### 2. **连接池配置(HikariCP 默认)** Spring Boot 默认使用 HikariCP 连接池,可添加优化参数: ```properties # HikariCP 连接池配置 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.maximum-pool-size=20 spring.datasource.hikari.minimum-idle=5 ``` #### 3. **切换其他连接池(如 Druid)** 若需使用 Druid 连接池,需额外添加依赖并配置: ```properties # Druid 配置示例 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=5 spring.datasource.druid.max-active=20 ``` #### 4. **配置验证** 通过以下方式验证配置是否生效: ```java @SpringBootTest public class DataSourceTest { @Autowired private DataSource dataSource; @Test void testConnection() throws SQLException { System.out.println("连接池类型:" + dataSource.getClass().getName()); System.out.println("活动连接数:" + ((HikariDataSource) dataSource).getHikariPoolMXBean().getActiveConnections()); } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值