Spring boot學習(四)Spring boot整合Druid

前言

在上一篇博客中咱們介紹了Spring boot配置Mybatis,可是並無配置鏈接池,這在實際開發過程當中確定是不切實際的,屢次的數據庫鏈接會給程序和數據庫都帶來不必的負擔,這一篇博客我將介紹java中目前最好,最流行的數據庫鏈接池---Druidcss

文章首發於我的博客:【www.xiongfrblog.cnhtml

Druid介紹

Druid阿里巴巴的一個開源項目,號稱爲監控而生的數據庫鏈接池,在功能、性能、擴展性方面都超過其餘例如DBCPC3P0BoneCPProxoolJBoss DataSource等鏈接池,並且Druid已經在阿里巴巴部署了超過600個應用,經過了極爲嚴格的考驗,這才收穫了你們的青睞!java

Spring boot配置Druid

話很少說,下面開始在咱們的項目中配置Druid。本篇博客在上一篇博客Spring boot 整合Mybatis的基礎上配置Druid,關於Mybatis鏈接數據庫的內容就很少說了。mysql

添加依賴

在咱們項目的pom.xml文件中添加以下的依賴:git

<!-- druid -->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.10</version>
</dependency>
複製代碼

這裏須要注意的是(不少人出錯的緣由),Druid還有另一種依賴以下:github

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.3</version>
</dependency>
複製代碼

兩種依賴均可以,可是配置的方式有些不一樣,使用下面的這種依賴項,在配置的時候須要新建Druid的配置類文件,而第一種依賴項則不須要,這裏我使用的就是第一種--更簡單,第二種就不介紹了,想了解的朋友請自行Googleweb

添加配置

我看網上的教程這一塊寫的都很模糊,直接上來就是一堆配置,也沒有代表配置是什麼意思,這對於喜歡複製粘貼的人來講很nice可是真的不利於咱們掌握理解,因此我這裏儘可能分層給你們介紹的更清晰一些。spring

  1. 首先在項目的配置文件application.properties文件中添加以下內容,代表使用Druid鏈接池:
#代表使用Druid鏈接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
複製代碼
  1. 配置數據源信息(整合Mybatis的時候已經說過了,爲了連貫性這裏再提一遍)
#配置實體類的位置
mybatis.type-aliases-package=com.web.springbootmybatis.entity
#xml文件位置
mybatis.mapper-locations=classpath:mapper/*.xml

#mysql數據庫鏈接信息配置
#mysql驅動
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#數據庫鏈接信息
spring.datasource.url=jdbc:mysql://localhost:3306/eran?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#數據庫用戶名
spring.datasource.username=root
#數據庫密碼
spring.datasource.password=root
複製代碼
  1. 接下來配置鏈接池的相關屬性,這些參數根據本身的須要靈活配置便可:
#初始化時創建物理鏈接的個數。
spring.datasource.druid.initial-size=5
#最大鏈接池數量
spring.datasource.druid.max-active=20
#最小鏈接池數量
spring.datasource.druid.min-idle=5
#獲取鏈接時最大等待時間,單位毫秒
spring.datasource.druid.max-wait=3000
#是否緩存preparedStatement,也就是PSCache,PSCache對支持遊標的數據庫性能提高巨大,好比說oracle,在mysql下建議關閉。
spring.datasource.druid.pool-prepared-statements=false
#要啓用PSCache,必須配置大於0,當大於0時,poolPreparedStatements自動觸發修改成true。在Druid中,不會存在Oracle下PSCache佔用內存過多的問題,能夠把這個數值配置大一些,好比說100
spring.datasource.druid.max-open-prepared-statements= -1
#配置檢測能夠關閉的空閒鏈接間隔時間
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置鏈接在池中的最小生存時間
spring.datasource.druid.min-evictable-idle-time-millis= 300000
spring.datasource.druid.max-evictable-idle-time-millis= 400000
複製代碼
  1. 經過別名的方式配置擴展插件,經常使用的插件有:sql

    別名 含義
    stat 監控統計
    log4j 日誌
    wall 防護sql注入

    這裏咱們就配置了statwall,配置多個英文逗號分隔,配置以下:數據庫

    #監控統計的stat,以及防sql注入的wall
    spring.datasource.druid.filters= stat,wall
    #Spring監控AOP切入點,如x.y.z.service.*,配置多個英文逗號分隔
    spring.datasource.druid.aop-patterns= com.web.springbootdruid.service.*
    複製代碼

這裏配置很重要,好比不配置stat,咱們在Druid的監控頁面中就拿不到想要的信息。

  1. 上邊咱們開啓stat監控統計插件,下邊進行監控配置:
#是否啓用StatFilter默認值true
spring.datasource.druid.web-stat-filter.enabled= true
#添加過濾規則
spring.datasource.druid.web-stat-filter.url-pattern=/*
#忽略過濾的格式
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
複製代碼
  1. StatViewServlet配置:Druid內置提供了一個StatViewServlet用於展現Druid的統計信息,StatViewServlet的用途包括:
  • 提供監控信息展現的html頁面
  • 提供監控信息的JSON API

配置以下,須要注意的是用戶名和密碼:

#是否啓用StatViewServlet默認值true
spring.datasource.druid.stat-view-servlet.enabled= true
#訪問路徑爲/druid時,跳轉到StatViewServlet
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
# 是否可以重置數據
spring.datasource.druid.stat-view-servlet.reset-enable=false
# 須要帳號密碼才能訪問控制檯,默認爲root
spring.datasource.druid.stat-view-servlet.login-username=druid
spring.datasource.druid.stat-view-servlet.login-password=druid
#IP白名單
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
#&emsp;IP黑名單(共同存在時,deny優先於allow)
spring.datasource.druid.stat-view-servlet.deny=
複製代碼

到這裏,關於Druid的配置就基本完成了,想要了解更多的朋友,能夠去查閱官方文檔【傳送門】

驗證Druid

咱們直接啓動項目,瀏覽器訪問localhost:8080/druid或者127.0.0.1:8080/druid獲得以下頁面說明配置成功:

在這裏插入圖片描述

進入Druid的登錄頁面,輸入咱們在配置文件中配置的用戶名和密碼登錄,進入下面的頁面:

在這裏插入圖片描述

首頁能夠看到一些基本配置信息,點擊菜單欄中的數據源能夠查看到咱們的數據源配置信息,以及鏈接池配置信息:

在這裏插入圖片描述

點擊sql監控,查看執行sql信息:

在這裏插入圖片描述

發現此時沒有任何sql執行記錄,因此咱們訪問連接localhost:8080/user(上一篇博客的內容),執行一次查詢操做,再來查看 sql監控頁面,發現已經有了一條記錄:

在這裏插入圖片描述

點擊該條記錄能夠查看更多詳情,這裏就不介紹了,配置成功的小夥伴們能夠本身體驗Druid的各類強大功能!

結語

到這裏,Spring boot整合Druid的內容就介紹完了,但願對您有所幫助,下一篇博客再見!bye~

相關文章
相關標籤/搜索