Spring Boot初步學習02

在上文Spring Boot 初步學習01(點擊查看)中,咱們已經將STS開發工具整合Maven建立了項目,進行了測試,這篇文章咱們一塊兒繼續整合一下鏈接池.java

鏈接池選擇

市面上對於數據庫鏈接池有不少選擇,如:C3P0,Druid,HikariCP等.
注意:數據庫鏈接池都須要實現數據庫鏈接池公共接口:javax.sql.DataSourcespring

本文中選擇HikariCP鏈接池號稱是目前最快的鏈接池,並且目前在springboot工程默認推薦使用HiKariCP鏈接池.sql

整合HiKariCP鏈接池

建立項目

建立一個Spring Starter Project項目數據庫

添加依賴

右鍵項目中的pom.xml文件 --> spring --> Edit Starters --> 搜索jdbc --> 勾選MySQL Driver/JDBC API兩個依賴 --> 保存會自動下載依賴segmentfault

注意:
看似咱們並無選擇上文說好的HiKariCP鏈接池,這是由於在pom.xml中jdbc依賴會默認幫咱們下載HiKariCP鏈接池.安全

配置鏈接池

SpringBoot中提倡的就是零配置,少配置.
只須要在application.properties配置文件中進行少許配置數據庫信息便可.springboot

配置信息以下圖:
1596199204(1).png
分別是數據庫url地址/用戶名/密碼,皆根據自身狀況設定.app

過程分析

首先各類鏈接池都是實現的DataSource接口,建立對象時,咱們採用父類聲明/子類建立的方式,這是面向接口的思想,能夠更加有效的解耦,也更加方便之後的修改或是維護.框架

HiKariCP鏈接池建立鏈接時,第一次建立時,花費時間會較長,再次獲取鏈接會相對時間短不少,是因爲第一次建立時,須要先建立池,再去建立鏈接存放在池中或直接使用,因此時間會較長.工具

而且當只是建立一個鏈接時,經過斷點跟蹤,能夠看到就只是建立了一次;而當咱們須要建立兩個及以上的鏈接時,經過斷電追蹤,也能夠發現,都會在須要的基礎上再多建立一個,這是因爲底層會多建立一個備用的機制,以防若是出現問題,或是再有需求時使用.

另外,當鏈接都在使用時,同一時間是不會有相同的鏈接給分別的對象使用的,這是基於鏈接池底層的雙重校驗機制;其優點就是在保證線程安全的同時還會考慮其性能;只有當鏈接使用完後放回至鏈接池中,再有對象使用時,纔有可能使用到重複的鏈接池.

最後,當框架使用鏈接池時,其實也是由DirverManage來建立,只是以後會交給池來管理,底層都是同樣的.

相關文章
相關標籤/搜索