SpringBoot默認使用HikariDataSource數(shù)據(jù)源方式
SpringBoot默認使用HikariDataSource數(shù)據(jù)源
定義
數(shù)據(jù)源:存儲了所有建立數(shù)據(jù)庫連接的信息。通過提供正確的數(shù)據(jù)源名稱,你可以找到相應的數(shù)據(jù)庫連接。
數(shù)據(jù)源負責維持一個數(shù)據(jù)庫連接池,當程序創(chuàng)建數(shù)據(jù)源實例時,系統(tǒng)會一次性的創(chuàng)建多個數(shù)據(jù)庫連接,并把這些數(shù)據(jù)連接保存在連接池中。當程序需要進行數(shù)據(jù)庫訪問時,無須重新獲得數(shù)據(jù)庫連接,而是從連接池中取出一個空閑的數(shù)據(jù)庫連接,當程序使用數(shù)據(jù)庫連接訪問結束后,無須關閉數(shù)據(jù)庫連接,而是將數(shù)據(jù)庫連接歸還給連接池即可。通過這種方式可以避免頻繁的獲取數(shù)據(jù)庫連接,關閉數(shù)據(jù)庫連接所導致的性能下降。
全局配置文件application.yml中spring.datasource下只配置了賬號,密碼,數(shù)據(jù)庫地址,連接驅動,因為默認使用的是HikariDataSource數(shù)據(jù)源。
如果是自定義數(shù)據(jù)源,可以使用
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
測試:
@RunWith(SpringRunner.class)
@SpringBootTest
public class HorseApplicationTests {
/**
* Spring Boot 默認已經(jīng)配置好了數(shù)據(jù)源,程序員可以直接 DI 注入然后使用即可
*/
@Resource
DataSource dataSource;
@Test
public void contextLoads() throws SQLException {
System.out.println("數(shù)據(jù)源>>>>>>" + dataSource.getClass());
}
運行結果:
數(shù)據(jù)源>>>>>>class com.zaxxer.hikari.HikariDataSource
數(shù)據(jù)庫連接
有了數(shù)據(jù)源,就可以拿到數(shù)據(jù)庫連接,使用JdbcTemplate 進行CRUD數(shù)據(jù)庫,即使沒有使用第三方數(shù)據(jù)庫操作框架,如:Mybatis,Hibernate,等Spring本身就可以對原生的JDBC做了輕量級的封裝,即時JdbcTemplate.
SpringBoot不僅提供了默認的數(shù)據(jù)源,同時默認已經(jīng)配置好了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;
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot+websocket實現(xiàn)消息對話功能
WebSocket是一種在Web應用程序中實現(xiàn)實時雙向通信的技術,它可以用于在線游戲、在線聊天、推送通知、實時監(jiān)控等,并且比傳統(tǒng)的輪詢技術更加高效和可靠,本文就給大家介紹基于SpringBoot+websocket實現(xiàn)消息對話功能,感興趣的小伙伴可以自己動手試一試2023-09-09
SpringBoot中的Profile多環(huán)境配置方法
這篇文章主要介紹了SpringBoot中的Profile多環(huán)境配置,SpringBoot提供了兩種多環(huán)境配置的方式,分別是使用profile文件進行多環(huán)境配置以及使用@Profile注解進行多環(huán)境配置,需要的朋友可以參考下2023-01-01
使用@ConditionalOnProperty控制是否加載的操作
這篇文章主要介紹了使用@ConditionalOnProperty控制是否加載的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
spring boot 實現(xiàn)配置多個DispatcherServlet最簡單方式
這篇文章主要介紹了spring boot 實現(xiàn)配置多個DispatcherServlet最簡單方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
SpringCloud?Function?SpEL注入漏洞分析及環(huán)境搭建
SpringCloud 是一套分布式系統(tǒng)的解決方案,常見的還有阿里巴巴的Dubbo,F(xiàn)ass的底層實現(xiàn)就是函數(shù)式編程,SpringCloud Function 就是Spring提供的分布式函數(shù)式編程組件,下面給大家介紹下SpringCloud?Function?SpEL注入漏洞分析,感興趣的朋友一起看看吧2022-04-04

