druid spring boot 统计SQL问题

2017年7月18日 · 46 字 · 1 分钟

spring-boot配置

spring.jpa.hibernate.ddl-auto=validate
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.initialize=true
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=10
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=false
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,slf4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.useGlobalDataSourceStat=true

这个配置没有什么好说的,网上很多,可能关键在

spring.datasource.filters=stat,wall,slf4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.useGlobalDataSourceStat=true

但是就算配置好这些后,返回/druid也不显示SQL统计。 其实问题在于

系统默认使用的数据库连接池没有使用你的配置,所以需要我们手动实例化Bean

kotlin代码

@SpringBootApplication
open class Application {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    open fun druidDataSource(): DataSource {
        return DruidDataSource()
    }