druid和hikari是同樣的數據源鏈接池解決方案,其監控功能比較引入注目,下面把教程的內容貼一下,若是用到的話能夠參考。css
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency>
server: port: 8086 spring: datasource: username: root password: 123456 url: jdbc:mysql://10.21.1.47:3306/joyblack?characterEncoding=utf8&serverTimezone=GMT driver-class-name: com.mysql.cj.jdbc.Driver initialization-mode: always sql-script-encoding: utf-8 schema: - classpath:schema.sql data: - classpath:data.sql 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 poolPreparedStatements: true # 配置監控統計攔截的filters,去掉後監控界面sql沒法統計,'wall'用於防火牆 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
將其導入配置文件,目前配置文件以下所示:java
server: port: 8086 spring: datasource: username: root password: 123456 url: jdbc:mysql://10.21.1.47:3306/joyblack?characterEncoding=utf8&serverTimezone=GMT driver-class-name: com.mysql.cj.jdbc.Driver initialization-mode: always sql-script-encoding: utf-8 schema: - classpath:schema.sql data: - classpath:data.sql 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 poolPreparedStatements: true # 配置監控統計攔截的filters,去掉後監控界面sql沒法統計,'wall'用於防火牆 filters: stat,wall,logback maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
編寫配置文件將配置注入數據源配置中以及配置數據庫監控等。mysql
package com.zhaoyi.jdbcweb.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid(){ return new DruidDataSource(); } // 配置Druid的監控 //1. 配置一個管理後臺的Servlet @Bean public ServletRegistrationBean statViewServlet(){ // 配置監控訪問路徑 ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String,String> initParams = new HashMap<>(); // 設置監控數據庫信息 initParams.put("loginUsername","user"); initParams.put("loginPassword","123456"); //默認容許全部訪問 initParams.put("allow",""); // 也能夠配置禁止訪問 // initParams.put("deny","192.168.102.200"); bean.setInitParameters(initParams); return bean; } //2. 配置一個web監控的filter @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String,String> initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
若是運行過程當中發現有提示注入(spring.datasource)之類的錯誤,通常是配置
filters: stat,wall,logback
這裏所用的是logback,教程裏面logback處用的是log4j,可是咱們知道springboot默認整合的日誌門面是slf4j+logback
,固然,若是您使用的是另外的組合,固然就得加入log4j的依賴了。web
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> <scope>compile</scope> </dependency>
運行項目,訪問127.0.0.1:8086/druid並登陸前面配置的帳戶和密碼(user:123456)便可查看監控信息.spring