原创 RabbitMQ 研究和SpringBoot 整合

1 介紹      MQ全稱爲Message Queue,即消息隊列, RabbitMQ是由erlang語言開發,基於AMQP(Advanced Message Queue 高級消息隊列協議)協議實現的消息隊列,它是一種應用程序之間的通信

原创 多線程實現線程中斷(一)

在業務需求中會有大文件或者限制時間返回,規定時間沒返回則認爲失敗,關閉線程 創建一個ThreadClose類 public class ThreadClose { // 創建線程保證兩個方法調用同一個線程 private

原创 線程等待調用小案例

需求設置是個線程只有一個線程執行完畢後下一個線程纔會執行。 public class DataCollection { //設置執行順序 public static final LinkedList<Control>

原创 JDK 8 List指定對象去重

創建對象 Student student1 = new Student("張三",20,"周"); Student student2 = new Student("李四",30,"上號"); St

原创 使用TK_mybatis快速搭建項目

pom <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artif

原创 java定時發送郵件

配置setting和定時任務 // 配置發送地址 Setting setting = new Setting("config/mail.setting"); // 收到郵件地址 private stat

原创 總結一個項目中使用的逆向工程

先配置maven,這個是以插件形式配置的maven <plugins> <plugin> <groupId>org.mybatis.generator</gr

原创 Git合併代碼

將develop合併到master分支 1.查看當前分支(當前分支可以直接查看或者命令查看) git branch或者命令git status *代表當前分支 2.切換分支到master git checkout master 3

原创 爲什麼wait()和notify()需要搭配synchonized關鍵字使用(三)

理解此問題先修知識: synchronized 的含義: Java中每一個對象都可以成爲一個監視器(Monitor), 該Monitor由一個鎖(lock), 一個等待隊列(waiting queue ), 一個入口隊列( en

原创 線程問題之線程之間的通信(二)

手寫一個單線程的生產者和消費者實現,實現生產者生產一個數字,如果已經生產線程等待,調用消費者消費這個數字,取消等待再次生產。 流程 單線程實現生產者消費者 public class OtherService { priv

原创 springboot純淨整合shiro的

springboot純淨整合shiro的 shiro介紹 Apache Shiro是一個強大且易用的Java安全框架,執行身份驗證、授權、密碼學和會話管理。使用Shiro的易於理解的API,您可以快速、輕鬆地獲得任何應用程序,從最

原创 redis常見問題總結

一、面試經常問到的Redis的過期策略 過期策略通常有以下三種: 定時過期:每個設置過期時間的key都需要創建一個定時器,到過期時間就會立即清除。該策略可以立即清除過期的數據,對內存很友好;但是會佔用大量的CPU資源去處理過期的

原创 git stash暫存的操作

git切換分支 $ git branch -a 來查看所在目錄的分支 $ git branch -a master * trunk remotes/origin/HEAD -> origin/master remo

原创 JDK8新特性詳解,lamdba表達式詳解

一、初步瞭解lamdba表達式 在jdk8之前我們方法參數都是基本數據類型或者引用數據類型,但是在8方法中可以傳遞函數表達式,即lamdba表達式,此表達式偉大在於既能兼容面向對象的調用也可以使用函數式編程,這是一個質的改變。傳遞

原创 Oracle使用存儲過程插入,修改CLOB數據

oracle中,如果直接插入clob數據,可能會報字符過長,導致sql不能正常執行。 因此,可以通過存儲過程來執行: DECLARE clob_data CLOB := 'xxxxxxxxxxxxxxxxxxx'; begin