跳到主要內容

發表文章

在 Spring Boot 中使用 HikariCP 連接池

上次幫小王解決了如何在 Spring Boot 中使用 JDBC 連接 MySQL 后,我就一直在等,等他問我第三個問題,比如說如何在 Spring Boot 中使用 HikariCP 連接池。但我等了四天也沒有等到任何音訊,似乎他從我的世界里消失了,而我卻仍然沉醉在他拍我馬屁的美妙感覺里。 突然感覺,沒有小王的日子里,好空虛。怎麼辦呢?想來想去還是寫文章度日吧,积極創作的過程中,也許能夠擺脫對小王的苦苦思念。寫什麼好呢? 想來想去,就寫如何在 Spring Boot 中使用 HikariCP 連接池吧。畢竟實戰項目當中,肯定不能使用 JDBC,連接池是必須的。而 HikariCP 據說非常的快,快到 Spring Boot 2 默認的數據庫連接池也從 Tomcat 切換到了 HikariCP(喜新厭舊的臭毛病能不能改改)。 HikariCP 的 GitHub 地址如下: https://github.com/brettwooldridge/HikariCP 目前星標 12K,被使用次數更是達到了 43.1K。再來看看它的自我介紹。 牛逼的不能行啊,原來 Hikari 來源於日語,"光"的意思,這意味着快得像光速一樣嗎?講真,看簡介的感覺就好像在和我的女神"湯唯"握手一樣刺激和震撼。 既然 Spring Boot 2 已經默認使用了 HikariCP,那麼使用起來也相當的輕鬆愜意,只需要簡單幾個步驟。 01、初始化 MySQL 數據庫 既然要連接 MySQL,那麼就需要先在電腦上安裝 MySQL 服務(本文暫且跳過),並且創建數據庫和表。 CREATE   DATABASE   `springbootdemo` ; DROP   TABLE   IF   EXISTS   `mysql_datasource` ; CREATE   TABLE   `mysql_datasource`  (    `id`   varchar ( 64 )  NOT   NULL ,   PRIMARY  KEY  ( `id` ) )  ENGINE =...

STM32內存受限情況下攝像頭驅動方式與圖像裁剪的選擇

1、STM32圖像接收接口 使用stm32芯片,128kB RAM,512kB Rom,資源有限,接攝像頭採集圖像,這種情況下,內存利用制約程序設計。 STM32使用DCMI接口讀取攝像頭,協議如下。行同步信號指示了一行數據完成,場同步信號指示了一幀圖像傳輸完成。所以出現了兩種典型的數據接收方式,按照行信號一行一行處理,按照場信號一次接收一副圖像。   2、按行讀取 以網絡上流行的野火的demo為例,使用行中斷,用DMA來讀取一行數據。 // 記錄傳輸了多少行 static uint16_t line_num = 0 ; // DMA傳輸完成中斷服務函數 void DMA2_Stream1_IRQHandler( void ) { if ( DMA_GetITStatus(DMA2_Stream1,DMA_IT_TCIF1) == SET ) { /* 行計數 */   line_num++ ;   if (line_num== img_height)   {   /* 傳輸完一幀,計數複位 */   line_num= 0 ;   }   /* DMA 一行一行傳輸 */   OV2640_DMA_Config(FSMC_LCD_ADDRESS+(lcd_width* 2 *(lcd_height-line_num- 1 )),img_width* 2 / 4 );   DMA_ClearITPendingBit(DMA2_Stream1,DMA_IT_TCIF1);   } } // 幀中斷服務函數,使用幀中斷重置line_num,可防止有時掉數據的時候DMA傳送行數出現偏移 void DCMI_IRQHandler( void ) {   if ( DCMI_GetITStatus (DCMI_IT_FRAME) == SET )   {   /* 傳輸完一幀,計數複位 */   line_num= 0 ;   DCMI_ClearITPendingBit(DCMI_IT_FRAME);   } } DMA中斷服務函數中主要是使用了一個靜態變量line_num來記錄已傳輸了多少行數據,每進一次DMA中斷時自加1,由於進入一次中斷就代...

STM32內存受限情況下攝像頭驅動方式與圖像裁剪的選擇

1、STM32圖像接收接口 使用stm32芯片,128kB RAM,512kB Rom,資源有限,接攝像頭採集圖像,這種情況下,內存利用制約程序設計。 STM32使用DCMI接口讀取攝像頭,協議如下。行同步信號指示了一行數據完成,場同步信號指示了一幀圖像傳輸完成。所以出現了兩種典型的數據接收方式,按照行信號一行一行處理,按照場信號一次接收一副圖像。   2、按行讀取 以網絡上流行的野火的demo為例,使用行中斷,用DMA來讀取一行數據。 // 記錄傳輸了多少行 static uint16_t line_num = 0 ; // DMA傳輸完成中斷服務函數 void DMA2_Stream1_IRQHandler( void ) { if ( DMA_GetITStatus(DMA2_Stream1,DMA_IT_TCIF1) == SET ) { /* 行計數 */   line_num++ ;   if (line_num== img_height)   {   /* 傳輸完一幀,計數複位 */   line_num= 0 ;   }   /* DMA 一行一行傳輸 */   OV2640_DMA_Config(FSMC_LCD_ADDRESS+(lcd_width* 2 *(lcd_height-line_num- 1 )),img_width* 2 / 4 );   DMA_ClearITPendingBit(DMA2_Stream1,DMA_IT_TCIF1);   } } // 幀中斷服務函數,使用幀中斷重置line_num,可防止有時掉數據的時候DMA傳送行數出現偏移 void DCMI_IRQHandler( void ) {   if ( DCMI_GetITStatus (DCMI_IT_FRAME) == SET )   {   /* 傳輸完一幀,計數複位 */   line_num= 0 ;   DCMI_ClearITPendingBit(DCMI_IT_FRAME);   } } DMA中斷服務函數中主要是使用了一個靜態變量line_num來記錄已傳輸了多少行數據,每進一次DMA中斷時自加1,由於進入一次中斷就代...

HTML&CSS面試高頻考點(二)

HTML&CSS面試高頻考點(一)     6 . W3C盒模型與怪異盒模型 標準盒模型(W3C標準) 怪異盒模型(IE標準) 怪異盒模型下盒子的大小=width(content + border + padding) + margin,即 真實大小 。 *參考 標準模式與兼容模式的區別 ,兼容模式下為怪異盒模型。 *注意box-sizing可以改變盒模型(box-sizing:border-box即為怪異盒模型)。 7. 水平垂直居中的方法 (1)定寬居中 1. absolute + 負margin //父元素 position: relative; //子元素 position: absolute; top: 50%; left: 50%; //margin設置自身一半的距離 margin-top: -50px; margin-left: -50px; 2. absolute + margin: auto //父元素 position: relative; //子元素 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;  3. absolute + calc //父元素 position: relative; //子元素 position: absolute; //減去自身一半的寬高 top: calc(50% - 50px); left: calc(50% - 50px);  *calc() 函數用於動態計算長度值。  4. min-height: 100vh + flex + margin:auto main {   min-height : 100vh ; /* vh相對於視窗的高度,視窗高度是100vh */    /* "視區"所指為瀏覽器內部的可視區域大小,   不包含任務欄標題欄以及底部工具欄的瀏覽器區域大小。 */   display : flex ; } div {   margin : auto ; } (2)...

HTML&CSS面試高頻考點(二)

HTML&CSS面試高頻考點(一)     6 . W3C盒模型與怪異盒模型 標準盒模型(W3C標準) 怪異盒模型(IE標準) 怪異盒模型下盒子的大小=width(content + border + padding) + margin,即 真實大小 。 *參考 標準模式與兼容模式的區別 ,兼容模式下為怪異盒模型。 *注意box-sizing可以改變盒模型(box-sizing:border-box即為怪異盒模型)。 7. 水平垂直居中的方法 (1)定寬居中 1. absolute + 負margin //父元素 position: relative; //子元素 position: absolute; top: 50%; left: 50%; //margin設置自身一半的距離 margin-top: -50px; margin-left: -50px; 2. absolute + margin: auto //父元素 position: relative; //子元素 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;  3. absolute + calc //父元素 position: relative; //子元素 position: absolute; //減去自身一半的寬高 top: calc(50% - 50px); left: calc(50% - 50px);  *calc() 函數用於動態計算長度值。  4. min-height: 100vh + flex + margin:auto main {   min-height : 100vh ; /* vh相對於視窗的高度,視窗高度是100vh */    /* "視區"所指為瀏覽器內部的可視區域大小,   不包含任務欄標題欄以及底部工具欄的瀏覽器區域大小。 */   display : flex ; } div {   margin : auto ; } (2)...

程序員必備基礎:Git 命令全方位學習

前言 掌握Git命令是每位程序員必備的基礎,之前一直是用smartGit工具,直到看到大佬們都是在用Git命令操作的,回想一下,發現有些Git命令我都忘記了,於是寫了這篇博文,複習一下~ https://github.com/whx123/JavaHome 公眾號:撿田螺的小男孩 文章目錄 Git是什麼? Git的相關理論基礎 日常開發中,Git的基本常用命令 Git進階之分支處理 Git進階之處理衝突 Git進階之撤銷與回退 Git進階之標籤tag Git其他一些經典命令 Git是什麼 在回憶Git是什麼的話,我們先來複習這幾個概念哈~ 什麼是版本控制? 百度百科定義是醬紫的~ 版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一。 那些年,我們的畢業論文,其實就是版本變更的真實寫照...腦洞一下,版本控制就是這些論文變更的管理~ 什麼是集中化的版本控制系統? 那麼,集中化的版本控制系統又是什麼呢,說白了,就是有一個集中管理的中央服務器,保存着所有文件的修改歷史版本,而協同開發者通過客戶端連接到這台服務器,從服務器上同步更新或上傳自己的修改。 什麼是分佈式版本控制系統? 分佈式版本控制系統,就是遠程倉庫同步所有版本信息到本地的每個用戶。嘻嘻,這裏分三點闡述吧: 用戶在本地就可以查看所有的歷史版本信息,但是偶爾要從遠程更新一下,因為可能別的用戶有文件修改提交到遠程哦。 用戶即使離線也可以本地提交,push推送到遠程服務器才需要聯網。 每個用戶都保存了歷史版本,所以只要有一個用戶設備沒問題,就可以恢複數據啦~ 什麼是Git? Git是免費、開源的 分佈式版本控制 系統,可以有效、高速地處理從很小到非常大的項目版本管理。 Git的相關理論基礎 Git的四大工作區域 Git的工作流程 Git文件的四種狀態 一張圖解釋Git的工作原理 Git的四大工作區域 先複習Git的幾個工作區域哈: Workspace :你電腦本地看到的文件和目錄,在Git的版本控制下,構成了工作區。 Inde...

程序員必備基礎:Git 命令全方位學習

前言 掌握Git命令是每位程序員必備的基礎,之前一直是用smartGit工具,直到看到大佬們都是在用Git命令操作的,回想一下,發現有些Git命令我都忘記了,於是寫了這篇博文,複習一下~ https://github.com/whx123/JavaHome 公眾號:撿田螺的小男孩 文章目錄 Git是什麼? Git的相關理論基礎 日常開發中,Git的基本常用命令 Git進階之分支處理 Git進階之處理衝突 Git進階之撤銷與回退 Git進階之標籤tag Git其他一些經典命令 Git是什麼 在回憶Git是什麼的話,我們先來複習這幾個概念哈~ 什麼是版本控制? 百度百科定義是醬紫的~ 版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一。 那些年,我們的畢業論文,其實就是版本變更的真實寫照...腦洞一下,版本控制就是這些論文變更的管理~ 什麼是集中化的版本控制系統? 那麼,集中化的版本控制系統又是什麼呢,說白了,就是有一個集中管理的中央服務器,保存着所有文件的修改歷史版本,而協同開發者通過客戶端連接到這台服務器,從服務器上同步更新或上傳自己的修改。 什麼是分佈式版本控制系統? 分佈式版本控制系統,就是遠程倉庫同步所有版本信息到本地的每個用戶。嘻嘻,這裏分三點闡述吧: 用戶在本地就可以查看所有的歷史版本信息,但是偶爾要從遠程更新一下,因為可能別的用戶有文件修改提交到遠程哦。 用戶即使離線也可以本地提交,push推送到遠程服務器才需要聯網。 每個用戶都保存了歷史版本,所以只要有一個用戶設備沒問題,就可以恢複數據啦~ 什麼是Git? Git是免費、開源的 分佈式版本控制 系統,可以有效、高速地處理從很小到非常大的項目版本管理。 Git的相關理論基礎 Git的四大工作區域 Git的工作流程 Git文件的四種狀態 一張圖解釋Git的工作原理 Git的四大工作區域 先複習Git的幾個工作區域哈: Workspace :你電腦本地看到的文件和目錄,在Git的版本控制下,構成了工作區。 Inde...