Druid連線池以及在springboot下配置
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驅動包:
- <dependency>
- <groupId>mysql</groupId>
-
<artifactId>mysql-connector-java
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.0.25</version>
- </dependency>
- # 驅動配置資訊
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- spring.datasource.url = jdbc:mysql://127.0.0.1:3306/mealsystem?useUnicode=true&characterEncoding=utf-8
- spring.datasource.username = root
- spring.datasource.password = 123456
- spring.datasource.driverClassName = com.mysql.jdbc.Driver
- #連線池的配置資訊
- spring.datasource.initialSize=5
- spring.datasource.minIdle=5
- spring.datasource.maxActive=20
- spring.datasource.maxWait=60000
- spring.datasource.timeBetweenEvictionRunsMillis=60000
- spring.datasource.minEvictableIdleTimeMillis=300000
- spring.datasource.validationQuery=SELECT 1 FROM DUAL
- spring.datasource.testWhileIdle=true
- spring.datasource.testOnBorrow=false
- spring.datasource.testOnReturn=false
- spring.datasource.poolPreparedStatements=true
- spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
- spring.datasource.filters=stat,wall,log4j
- spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
目前Spring Boot中預設支援的連線池有dbcp,dbcp2, tomcat, hikari三種連線池。
由於Druid暫時不在Spring Bootz中的直接支援,故需要進行配置資訊的定製:
- @Configuration
- public class DruidDBConfig {
- private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class);
- @Value("${spring.datasource.url}")
- private String dbUrl;
- @Value("${spring.datasource.username}")
- private String username;
- @Value("${spring.datasource.password}")
- private String password;
- @Value("${spring.datasource.driverClassName}")
- private String driverClassName;
- @Value("${spring.datasource.initialSize}")
- private int initialSize;
- @Value("${spring.datasource.minIdle}")
- private int minIdle;
- @Value("${spring.datasource.maxActive}")
- private int maxActive;
- @Value("${spring.datasource.maxWait}")
- private int maxWait;
- @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")
- private int timeBetweenEvictionRunsMillis;
- @Value("${spring.datasource.minEvictableIdleTimeMillis}")
- private int minEvictableIdleTimeMillis;
- @Value("${spring.datasource.validationQuery}")
- private String validationQuery;
- @Value("${spring.datasource.testWhileIdle}")
- private boolean testWhileIdle;
- @Value("${spring.datasource.testOnBorrow}")
- private boolean testOnBorrow;
- @Value("${spring.datasource.testOnReturn}")
- private boolean testOnReturn;
- @Value("${spring.datasource.poolPreparedStatements}")
- private boolean poolPreparedStatements;
- @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}")
- private int maxPoolPreparedStatementPerConnectionSize;
- @Value("${spring.datasource.filters}")
- private String filters;
- @Value("{spring.datasource.connectionProperties}")
- private String connectionProperties;
- @Bean //宣告其為Bean例項
- @Primary //在同樣的DataSource中,首先使用被標註的DataSource
- public DataSource dataSource(){
- DruidDataSource datasource = new DruidDataSource();
- datasource.setUrl(this.dbUrl);
- datasource.setUsername(username);
- datasource.setPassword(password);
- datasource.setDriverClassName(driverClassName);
- //configuration
- datasource.setInitialSize(initialSize);
- datasource.setMinIdle(minIdle);
- datasource.setMaxActive(maxActive);
- datasource.setMaxWait(maxWait);
- datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
- datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
- datasource.setValidationQuery(validationQuery);
-
相關推薦
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
SpringBoot下Druid連線池的使用配置
分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!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 Boot下Druid連線池的使用配置分析
引言: 在Spring Boot下預設提供了若干種可用的連線池,Druid來自於阿里系的一個開源連線池,在連線池之外,還提供了非常優秀的監控功能,這裡講解如何與Spring Boot實現整合。 1. 環境描述 Spring Boot 1.4.0.RELEASE
spring下,druid,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工程