SpringBoot之整合Druid資料來源
阿新 • • 發佈:2018-12-12
在上一節的專案上引入依賴
引入依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
這裡有一個坑!!!
我們要引入的是上面的依賴,不是下面這個 依賴,不然在後面 會訪問不了監控頁面。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.5</version>
</dependency>
修改配置檔案
# mybatis mybatis.type-aliases-package=com.example.miaosha_xdp.entity mybatis.configuration.map-underscore-to-camel-case=true mybatis.configuration.default-fetch-size=100 mybatis.configuration.default-statement-timeout=3000 mybatis.mapperLocations = classpath:mapper/*.xml # druid spring.datasource.url=jdbc:mysql://xdp:3306/miaosha?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 初始化時建立物理連線的個數 spring.datasource.druid.initial-size=5 # 最大連線池數量 spring.datasource.druid.max-active=30 # 最小連線池數量 spring.datasource.druid.min-idle=5 # 獲取連線時最大等待時間,單位毫秒 spring.datasource.druid.max-wait=60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 spring.datasource.druid.time-between-eviction-runs-millis=60000 # 連線保持空閒而不被驅逐的最小時間 spring.datasource.druid.min-evictable-idle-time-millis=300000 # 用來檢測連線是否有效的sql,要求是一個查詢語句 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL # 建議配置為true,不影響效能,並且保證安全性。申請連線的時候檢測,如果空閒時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連線是否有效。 spring.datasource.druid.test-while-idle=true # 申請連線時執行validationQuery檢測連線是否有效,做了這個配置會降低效能。 spring.datasource.druid.test-on-borrow=false # 歸還連線時執行validationQuery檢測連線是否有效,做了這個配置會降低效能。 spring.datasource.druid.test-on-return=false # 是否快取preparedStatement,也就是PSCache。PSCache對支援遊標的資料庫效能提升巨大,比如說oracle。在mysql下建議關閉。 spring.datasource.druid.pool-prepared-statements=true # 要啟用PSCache,必須配置大於0,當大於0時,poolPreparedStatements自動觸發修改為true。 spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50 # 配置監控統計攔截的filters,去掉後監控介面sql無法統計 spring.datasource.druid.filters=stat,wall # 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄 spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 # 合併多個DruidDataSource的監控資料 spring.datasource.druid.use-global-data-source-stat=true
測試訪問
在瀏覽器輸入http://localhost:8080/druid
可以看到以下頁面。這是druid的監控中心
在資料庫介面輸入查詢:show full processlist
可以看到如下資訊:
可以看到,啟動專案後,直接建立5個數據連線,這是由application.properties
配置檔案中spring.datasource.druid.initial-size=5
控制的。
druid監控
瀏覽器輸入http://localhost:8080/druid
直接就能看到druid控制檯介面,在這裡面可以看到很多專案資訊,如果任憑使用者隨意訪問,非常危險。我們可以通過配置,設定只有通過登入認證才可以訪問。
在application.properties
配置檔案中增加:
# druid連線池監控
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123
# 排除一些靜態資源,以提高效率
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
再次訪問監控中心,可以看到需要登陸,登陸名和密碼就是我們 上面設定的