SpringBoot默認使用HikariDataSource數據源方式
SpringBoot默認使用HikariDataSource數據源
定義
數據源:存儲瞭所有建立數據庫連接的信息。通過提供正確的數據源名稱,你可以找到相應的數據庫連接。
數據源負責維持一個數據庫連接池,當程序創建數據源實例時,系統會一次性的創建多個數據庫連接,並把這些數據連接保存在連接池中。當程序需要進行數據庫訪問時,無須重新獲得數據庫連接,而是從連接池中取出一個空閑的數據庫連接,當程序使用數據庫連接訪問結束後,無須關閉數據庫連接,而是將數據庫連接歸還給連接池即可。通過這種方式可以避免頻繁的獲取數據庫連接,關閉數據庫連接所導致的性能下降。
全局配置文件application.yml中spring.datasource下隻配置瞭賬號,密碼,數據庫地址,連接驅動,因為默認使用的是HikariDataSource數據源。
如果是自定義數據源,可以使用
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
測試:
@RunWith(SpringRunner.class) @SpringBootTest public class HorseApplicationTests { /** * Spring Boot 默認已經配置好瞭數據源,程序員可以直接 DI 註入然後使用即可 */ @Resource DataSource dataSource; @Test public void contextLoads() throws SQLException { System.out.println("數據源>>>>>>" + dataSource.getClass()); }
運行結果:
數據源>>>>>>class com.zaxxer.hikari.HikariDataSource
數據庫連接
有瞭數據源,就可以拿到數據庫連接,使用JdbcTemplate 進行CRUD數據庫,即使沒有使用第三方數據庫操作框架,如:Mybatis,Hibernate,等Spring本身就可以對原生的JDBC做瞭輕量級的封裝,即時JdbcTemplate.
SpringBoot不僅提供瞭默認的數據源,同時默認已經配置好瞭JdbcTemplate放在容器中,程序員隻需自己註入即可使用。
JdbcTemplate的自動裝配原理是依賴JdbcTemplateAutoConfiguration類。
HikariDataSource默認配置
com.zaxxer.hikari.HikariConfig private static final long IDLE_TIMEOUT = MINUTES.toMillis(10); private static final long MAX_LIFETIME = MINUTES.toMillis(30); private static final int DEFAULT_POOL_SIZE = 10; private static boolean unitTest = false; // Properties changeable at runtime through the HikariConfigMXBean // private volatile long connectionTimeout; private volatile long validationTimeout; private volatile long idleTimeout; private volatile long leakDetectionThreshold; private volatile long maxLifetime; private volatile int maxPoolSize; private volatile int minIdle; private volatile String username; private volatile String password;
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot2.0.3打印默認數據源為 HikariDataSource (null)問題
- spring boot中配置hikari連接池屬性方式
- SpringBoot數據訪問自定義使用Druid數據源的方法
- 使用springboot不自動初始化數據庫連接池
- 利用Sharding-Jdbc進行分庫分表的操作代碼