原文:https://blog.csdn.net/jiangjun0130/article/details/77868578
1:在配置文件中不需要指定wall防火牆filter。
配置如下:
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/database?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: root password: setpay@123 type: com.alibaba.druid.pool.DruidDataSource druid: # 初始化連接大小 initial-size: 8 # 最小空閑連接數 min-idle: 5 #最大連接數 max-active: 64 #查詢超時時間 query-timeout: 6000 #事務查詢超時時間 transaction-query-timeout: 6000 #關閉空閑連接超時時間 remove-abandoned-timeout: 1800 # 配置獲取連接等待超時的時間 max-wait: 60000 ##配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 time-between-eviction-runs-millis: 60000 ##配置一個連接在池中最小生存的時間,單位是毫秒 min-victable-idle-time-millis: 300000 validation-query: select 1 test-while-idle: true test-on-borrow: true test-on-return: true pool-prepared-statements: true max-open-prepared-statements: 300 verify-server-certificate: false # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆 filters: stat # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄 connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合並多個DruidDataSource的監控數據 use-global-dataSource-stat: true
filters里不要配置wall,否則還是報錯
2:在DruidConfig中進行定制化配置。
@Configuration public class DruidConfig { @ConditionalOnClass(DruidDataSource.class) @ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true) static class Druid extends DruidConfig{ @Bean @ConfigurationProperties("spring.datasource.druid") public DruidDataSource dataSource(DataSourceProperties properties){ DruidDataSource druidDataSource = (DruidDataSource) properties.initializeDataSourceBuilder() .type(DruidDataSource.class).build(); DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl()); String validationQuery = databaseDriver.getValidationQuery(); if(validationQuery != null){ druidDataSource.setValidationQuery(validationQuery); } return druidDataSource; } @Bean public WallFilter wallFilter(){ WallFilter wallFilter = new WallFilter(); wallFilter.setConfig(wallConfig()); return wallFilter; } @Bean public WallConfig wallConfig(){ WallConfig wallConfig = new WallConfig(); wallConfig.setMultiStatementAllow(true);//允許一次執行多條語句 wallConfig.setNoneBaseStatementAllow(true);//允許一次執行多條語句 return wallConfig; } } } --------------------- 作者:專業矮矬窮 來源:CSDN 原文:https://blog.csdn.net/jiangjun0130/article/details/77868578 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!