1. 程式人生 > >Druid連線池以及在springboot下配置

Druid連線池以及在springboot下配置

在Spring Boot下預設提供了若干種可用的連線池,Druid來自於阿里系的一個開源連線池,在連線池之外,還提供了非常優秀的監控功能,這裡講解如何與Spring Boot實現整合。

1.  環境描述

     spring Boot 1.4.0.RELEASE,  JDK 1.8

2.   Druid介紹

     Druid是一個JDBC元件,它包括三部分: 

  •  DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的外掛體系。
  •  DruidDataSource 高效可管理的資料庫連線池。 
  •  SQLParser 

   Druid可以做什麼?  

  •   可以監控資料庫訪問效能,Druid內建提供了一個功能強大的StatFilter外掛,能夠詳細統計SQL的執行效能,這對於線上分析資料庫訪問效能有幫助。
  •   替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴充套件性好的資料庫連線池。
  •   資料庫密碼加密。直接把資料庫密碼寫在配置檔案中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支援PasswordCallback。  
  •  SQL執行日誌,Druid提供了不同的LogFilter,能夠支援Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫訪問情況。 
  •   擴充套件JDBC,如果你要對JDBC層有程式設計的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴充套件外掛。 

     專案地址: https://github.com/alibaba/druid

3.   Spring Boot與Druid的整合

       MySQL Driver驅動包:

  1. <dependency>
  2.             <groupId>mysql</groupId>
  3.             <artifactId>mysql-connector-java
    </artifactId>
  4.             <scope>runtime</scope>
  5.         </dependency>
    Spring Boot的JPA依賴包:
  1. <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-data-jpa</artifactId>
  4.         </dependency>
   阿里系的Druid依賴包:
  1. <dependency>
  2.             <groupId>com.alibaba</groupId>
  3.             <artifactId>druid</artifactId>
  4.             <version>1.0.25</version>
  5.         </dependency>
    Spring Boot中的application.properties配置資訊:
  1. # 驅動配置資訊  
  2. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource  
  3. spring.datasource.url = jdbc:mysql://127.0.0.1:3306/mealsystem?useUnicode=true&characterEncoding=utf-8  
  4. spring.datasource.username = root
  5. spring.datasource.password = 123456
  6. spring.datasource.driverClassName = com.mysql.jdbc.Driver  
  7. #連線池的配置資訊  
  8. spring.datasource.initialSize=5
  9. spring.datasource.minIdle=5
  10. spring.datasource.maxActive=20
  11. spring.datasource.maxWait=60000
  12. spring.datasource.timeBetweenEvictionRunsMillis=60000
  13. spring.datasource.minEvictableIdleTimeMillis=300000
  14. spring.datasource.validationQuery=SELECT 1 FROM DUAL  
  15. spring.datasource.testWhileIdle=true
  16. spring.datasource.testOnBorrow=false
  17. spring.datasource.testOnReturn=false
  18. spring.datasource.poolPreparedStatements=true
  19. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
  20. spring.datasource.filters=stat,wall,log4j  
  21. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
 在Spring Boot1.4.0中驅動配置資訊沒有問題,但是連線池的配置資訊不再支援這裡的配置項,即無法通過配置項直接支援相應的連線池;這裡列出的這些配置項可以通過定製化DataSource來實現。

  目前Spring Boot中預設支援的連線池有dbcp,dbcp2, tomcat, hikari三種連線池。 

由於Druid暫時不在Spring Bootz中的直接支援,故需要進行配置資訊的定製:

  1. @Configuration  
  2. public class DruidDBConfig {  
  3.     private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class);  
  4.     @Value("${spring.datasource.url}")  
  5.     private String dbUrl;  
  6.     @Value("${spring.datasource.username}")  
  7.     private String username;  
  8.     @Value("${spring.datasource.password}")  
  9.     private String password;  
  10.     @Value("${spring.datasource.driverClassName}")  
  11.     private String driverClassName;  
  12.     @Value("${spring.datasource.initialSize}")  
  13.     private int initialSize;  
  14.     @Value("${spring.datasource.minIdle}")  
  15.     private int minIdle;  
  16.     @Value("${spring.datasource.maxActive}")  
  17.     private int maxActive;  
  18.     @Value("${spring.datasource.maxWait}")  
  19.     private int maxWait;  
  20.     @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")  
  21.     private int timeBetweenEvictionRunsMillis;  
  22.     @Value("${spring.datasource.minEvictableIdleTimeMillis}")  
  23.     private int minEvictableIdleTimeMillis;  
  24.     @Value("${spring.datasource.validationQuery}")  
  25.     private String validationQuery;  
  26.     @Value("${spring.datasource.testWhileIdle}")  
  27.     private boolean testWhileIdle;  
  28.     @Value("${spring.datasource.testOnBorrow}")  
  29.     private boolean testOnBorrow;  
  30.     @Value("${spring.datasource.testOnReturn}")  
  31.     private boolean testOnReturn;  
  32.     @Value("${spring.datasource.poolPreparedStatements}")  
  33.     private boolean poolPreparedStatements;  
  34.     @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}")  
  35.     private int maxPoolPreparedStatementPerConnectionSize;  
  36.     @Value("${spring.datasource.filters}")  
  37.     private String filters;  
  38.     @Value("{spring.datasource.connectionProperties}")  
  39.     private String connectionProperties;  
  40.     @Bean     //宣告其為Bean例項  
  41.     @Primary  //在同樣的DataSource中,首先使用被標註的DataSource  
  42.     public DataSource dataSource(){  
  43.         DruidDataSource datasource = new DruidDataSource();  
  44.         datasource.setUrl(this.dbUrl);  
  45.         datasource.setUsername(username);  
  46.         datasource.setPassword(password);  
  47.         datasource.setDriverClassName(driverClassName);  
  48.         //configuration  
  49.         datasource.setInitialSize(initialSize);  
  50.         datasource.setMinIdle(minIdle);  
  51.         datasource.setMaxActive(maxActive);  
  52.         datasource.setMaxWait(maxWait);  
  53.         datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);  
  54.         datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);  
  55.         datasource.setValidationQuery(validationQuery);  
  56. 相關推薦

    Druid連線以及springboot配置

    在Spring Boot下預設提供了若干種可用的連線池,Druid來自於阿里系的一個開源連線池,在連線池之外,還提供了非常優秀的監控功能,這裡講解如何與Spring Boot實現整合。 1.  環境描述      spring Boot 1.4.0.RELEASE

    Spring Boot 整合 Mybatis(druid 資料庫連線 以及 分頁配置

    MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映,目前很大一部分網際網路、軟體公司都在使用這套框架 下來來之後,我們主要關注幾個檔案 配置檔案:generator.properties 主要是資料庫的相關配置,以及檔案生成的根路徑 generator.jdbc.drive

    Spring boot2.0以上整合Druid連線及監控資訊配置

    1. Springboot 2.0選擇HikariCP作為預設資料庫連線池 理由參考: 2. 資料庫連線池效能比對(hikari druid c3p0 dbcp jdbc) 本文是整合Druid連線池,資料庫為mysql pom檔案新增druid的依

    Spring boot+Mybatis+druid連線及監控資訊配置

    新建專案我是用的是IDEA,專案選擇如下所示:為專案取一個名字,如下圖所示,然後點選next選擇需要新增的模組,選擇完畢後,會自動將所需的依賴,新增到pom檔案中確認路徑無誤,點選finish即可專案基本結構,IDEA會自動生成,為了測試環境是否可以成功執行,建議建包結構如下

    DRUID 連線的使用、配置詳解

    DRUID 連線池的使用、配置詳解 本篇參考:原文連結 一、DRUID 介紹: DRUID 是阿里巴巴開源平臺上一個資料庫連線池實現,它結合了 C3P0、DBCP、PROXOOL等DB池的優點,同時加入了日誌監控,可以很好的監控 DB 池連線和 SQL 的執行情況,可以說是針

    DRUID連線的介紹與配置

    DRUID是阿里巴巴開源平臺上一個資料庫連線池實現,它結合了C3P0、DBCP、PROXOOL等DB池的優點,同時加入了日誌監控,可以很好的監控DB池連線和SQL的執行情況,可以說是針對監控而生的DB連線池2. 在哪裡下載druid3. 怎麼獲取Druid的原始碼Druid是一個開源專案,原始碼託管在gith

    SpringBootDruid連線的使用配置

    分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    spring配置資料來源的4種方式以及Druid連線

    第一種:使用spring自帶的DriverManagerDataSource(無連線池的作用) <bean id="dataSource" class="org.springframework

    SpringBoot學習-(四)SpringBoot配置Druid連線

    Druid介紹 Druid是一個JDBC元件,druid 是阿里開源在 github 上面的資料庫連線池,它包括三部分: * DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的外掛體系。 * DruidDataSo

    Spring BootDruid連線的使用配置分析

    引言: 在Spring Boot下預設提供了若干種可用的連線池,Druid來自於阿里系的一個開源連線池,在連線池之外,還提供了非常優秀的監控功能,這裡講解如何與Spring Boot實現整合。 1.  環境描述      Spring Boot 1.4.0.RELEASE

    springdruid,c3p0,proxool,dbcp四個資料連線的使用和配置

    由於那天Oracle的資料連線是隻能使用dbcp的資料庫連線池才連線上了,所以決定試一下當下所有得資料庫連線池連線orcale和mysql,先上程式碼 配置檔案的程式碼 1 #=================dbcp連線池======================# 2 #Oracle資料庫連線

    DRUID 連線的實用 配置詳解

    DRUID介紹     DRUID是阿里巴巴開源平臺上一個資料庫連線池實現,它結合了C3P0、DBCP、PROXOOL等DB池的優點,同時加入了日誌監控,可以很好的監控DB池連線和SQL的執行情況,可以說是針對監控而生的DB連線池(據說是目前最好的連線

    SpringBoot整合Druid連線,Caused by: java.lang.ClassNotFoundException: org.apache.log4j

    github:https://github.com/alibaba/druid SpringBoot版本:1.5.9.RELEASE   預設使用的日誌框架為log4j2 在配置 Druid 資料監控時,進行了如下配置 # 配置監控統計攔截的filters,去掉後

    SpringBoot入門篇--整合mybatis+generator自動生成程式碼+druid連線+PageHelper分頁外掛

    我們這一一篇部落格講的是如何整合Springboot和Mybatis框架,然後使用generator自動生成mapper,pojo等檔案。然後再使用阿里巴巴提供的開源連線池druid,這個連線池的好處我就不說了,集合了所有連線池的好處,並且還提供了監控等功能,加大了可擴充套件性等等。   1.&

    spring jdbc --注:c3p0資料庫連線druid連線使用配置整理

    是Maven配置檔案:pom.xml的程式碼內容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

    Druid連線-配置_DruidDataSource參考配置

    【更多參考】https://www.cnblogs.com/niejunlei/p/5977895.html 配置_DruidDataSource參考配置 以下是一個參考的連線池配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    Mybatis配置C3p0 和Druid連線

    普通java工程配置Mybatis 連線池 整體結構 匯入jar 包: 連結:https://pan.baidu.com/s/1aEpDPO9xRK1_shVsUpOEZA 提取碼:16nf Mybatis 配置檔案: <?xml version="

    1112_maven專案使用Druid連線配置步驟和注意事項[mysql資料庫]

    maven專案使用Druid連線池配置步驟和注意事項[mysql資料庫] 2018年06月13日 17:09:25 個人分類: java 注:這兩天搭建專案時,使用Druid連線池入了不少坑;以此記錄; MySQL Server 5.7.21 + mysql-connector-j

    Druid連線-配置監控介面

    一、前言       在阿里的資料庫連線池中,Druid是一個很好的選擇。她可以實現程式設計師的一些特殊的需求,比如像金鑰服務請求憑證,統計sql資訊,sql效能收集,sql注入檢測,sql翻譯等。   &nbs

    SpringBoot | 第十章:搭建SpringBoot整合Mybatis+druid連線監控

    前言     今年註定是不平凡的一年,Spring家族的一套SpringBoot+SpringCloud掀起來一陣熱潮,網際網路微服務技術火熱膨脹,身邊的程式設計師都在學習,我經不住誘惑,準備從零開始學,並且以記錄部落格的形式; 一. 建立springboot工程