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。

推薦閱讀: