原创 Docker學習筆記(三):DockerFile簡介、DockerFile構建鏡像、發佈鏡像

DockerFile詳解 1、DockerFile基本介紹 DockerFile是用來構建Docker鏡像文件,是由一系列命令和參數構成的腳本。 構建步驟: 編寫一個Dockerfile文件 docker build 構建成爲一

原创 MyBatis-Plus使用筆記(一):SpringBoot集成MyBatis-Plus

一、創建並初始化數據庫 1、創建數據庫: mybatis_plus 2、創建 User 表 其表結構如下: id name age email 1 Jone 18 [email protected] 2 Jac

原创 Mooc項目開發筆記(四):分頁查詢、多條件組合查詢、自動填充、統一異常處理、統一日誌處理、講師CRUD功能

一、分頁功能 1、EduConfig中配置分頁插件 /** * 分頁插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return n

原创 Mooc項目開發筆記(二):講師模塊配置、代碼生成、框架運行測試

一、講師管理模塊配置 1、在service下面service-edu模塊中創建配置文件 將resources目錄設置爲resources目錄類型 將java目錄設置爲source目錄類型 resources目錄下創建文件 ap

原创 Mooc項目開發筆記(一):搭建項目框架

一、創建父工程 1、創建sprigboot工程 Mooc 在idea開發工具中,使用 Spring Initializr 快速初始化一個 Spring Boot 模塊,版本使用:2.2.6.RELEASE 2、刪除 src 目錄

原创 Netty學習筆記(五):Netty實現簡易版Dubbo RPC

第 9 章 實現簡易版 dubbo RPC 一、RPC 基本介紹 RPC(RemoteProcedure Call)— 遠程過程調用,是一個計算機通信協議。該協議允許運行於一臺計算機的程 序調用另一臺計算機的子程序,而程序員無需額

原创 Netty學習筆記(四):Netty應用(羣聊、心跳機制、長連接)、Protobfuf、編解碼器、TCP粘包和拆包

第 5 章 Netty 應用實例 一、Netty 應用實例-羣聊系統 1、要求 編寫一個 Netty 羣聊系統,實現服務器端和客戶端之間的數據簡單通訊(非阻塞) ,實現多人羣聊 。 服務器端:可以監測用戶上線,離線,並實現消息轉發

原创 Netty學習筆記(三):Netty簡介、線程模型、Netty應用實例、Netty核心組件介紹

第 4 章 Netty 詳解 一、Netty簡介 1、NIO 存在的問題 NIO 的類庫和 API 繁雜,使用麻煩:需要熟練掌握 Selector、ServerSocketChannel、SocketChannel、ByteBu

原创 Netty學習筆記(二):NIO簡介、緩衝區(Buffer)、通道(Channel)、選擇器(Selector)、NIO編程、零拷貝、AIO

第 3 章 JavaNIO 編程 一、簡介 1、基本概念 JavaNIO 全稱 java non-blocking IO,是指 JDK 提供的新 API。從 JDK1.4 開始,Java 提供了一系列改進的 輸入/輸出的新特性,

原创 Java併發學習筆記(七):線程池、自定義線程池、任務調度線程池、Tomcat線程池、Fork/Join

併發工具 一、線程池 線程池是指管理一組同構工作線程的線程的資源池。 線程池與**工作隊列(Work Queue)模切相關,工作隊列中保存了所有等待知心的任務。線程池中的工作線程(Work Thread)**的任務很簡單:從工作隊

原创 Java併發學習筆記(五):樂觀鎖、CAS(比較交換)使用和原理、原子整數、原子引用、原子數組、原子累加器、Unsafe

樂觀鎖(非阻塞) 一、CAS(比較交換) 與 volatile 1、引入 現在需要在多線程的情況下對一個賬戶扣款操作,除了使用synchronized方法, 還可以使用AtomicInteger 的解決問題: privat

原创 Java併發學習筆記(三):Wait\Notify、保護性暫停、生產者消費者、Park\Unpark、線程狀態轉換、活躍性、ReentryantLock、順序控制

一、Wait和Notify 1、原理 Wait和Notify用於等待。其原理爲: Owner 線程發現條件不滿足,調用 wait 方法,即可進入 WaitSet 變爲 WAITING 狀態 WAITING 線程會在 Owner

原创 Java併發學習筆記(六):不可變、final、保護性拷貝、享元模式、final原理、無狀態

不可變 一、 日期轉換的問題 1、引入 下面的代碼在運行時,由於 SimpleDateFormat 不是線程安全的 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")

原创 Java併發學習筆記(四):Java內存模型(JMM)、可見性、有序性、volatile使用、volatile原理、線程安全單例、Happens-Before

Java內存模型 一、簡介 Java內存模型的主要目的是定義程序中各種變量的訪問規則,即關注在虛擬機中把變量值存儲到內存和從內存中取出變量值這樣的底層細節。其中所指的變量包括了實例字段、靜態字段和構成數組對象的元素,但是不包括局部

原创 Java併發學習筆記(九):Semaphore、CountdownLatch、CyclicBarrier

JUC 四、Semaphore 1、基本使用 信號量,用來限制能同時訪問共享資源的線程上限。 public static void main(String[] args) { //創建Semaphore 對象,參數用戶限定