原创 SpringBoot 服務端表單數據校驗

POM 依賴 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId

原创 SpringCloud 入門

SpringCloud SpringCloud:是一個服務治理平臺,提供了一些服務框架。包含了:服務註冊與發現、配置中心、消息中心 、負載均衡、數據監控等等。 Spring Cloud 是一個微服務框架,相比 Dubbo 等

原创 SpringBoot 異常處理方式

SpringBoot 異常處理方式 SpringBoot 中對於異常處理提供了五種處理方式: 自定義錯誤頁面 SpringBoot 默認的處理異常的機制:SpringBoot 默認的已經提供了一套處理異常的機制。 一旦程序中出

原创 Spring Boot 定時任務

Scheduled 定時任務器 Scheduled 定時任務器:是 Spring3.0 以後自帶的一個定時任務器。 =================POM.XML================== <properties>

原创 SpringCloud之RabbitMQ

安裝 erlang Erlang(['ə:læŋ])是一種通用的面向併發的編程語言,它由瑞典電信設備製造商愛立信所轄的CS-Lab 開發,目的是創造一種可以應對大規模併發活動的編程語言和運行環境. ========安裝epel==

原创 SpringBoot整合servlet,Filter,Listener

SpringBoot 整合Servlet 1 . 在springBoot啓動時會掃描**@WebServlet**,並將該類實例化. @SpringBootApplication @ServletComponentScan /

原创 SpringBoot 整合視圖View

SpringBoot 整合JSP @Controller public class UserController { /* * 處理請求,產生數據 */ @RequestMapping("/showUser") pu

原创 MyBatis架構圖

MyBatis 架構圖 MyBatis層次結構圖 Sqlsession 查詢時序圖 整體流程圖: MyBatis 緩存機制:

原创 ThreadLocal 基本使用

ThreadLocal 很多地方叫做線程本地變量,也有些地方叫做線程本地存儲,ThreadLocal爲變量在每個線程中都創建了一個副本,那麼每個線程可以訪問自己內部的副本變量。 它本身是爲線程安全和某些特定場景的問題而設計的。 先

原创 手寫可重入鎖(Lock)

可重入鎖 用 lock 來保證原子性。 什麼是原子性,就是不可分,從頭執行到尾,不能被其他線程同時執行。 可通過CAS來實現原子操作 CAS(Compare and Swap): CAS操作需要輸入兩個數值,一箇舊值(期望操作前的值

原创 Spring 動態代理引發的問題.

@Transactional 註解事務 發生異常事務回滾: @Override @Transactional public boolean insertEmployee(EmployeeTo employeeTo)

原创 JVM

堆結構及對象分代 什麼是分代,分代的必要性是什麼 Java 虛擬機根據對象存活的週期不同,把堆內存劃分爲幾塊,一般分爲新生代、老年代和永久代 (對 HotSpot 虛擬機而言),這就是 JVM 的內存分代策略。堆內存是虛擬機管

原创 BIO/NIO/AIO編程

BIO 編程 Blocking IO: 同步阻塞的編程方式。 BIO 編程方式通常是在 JDK1.4 版本之前常用的編程方式。編程實現過程爲:首先在服務端啓動一個 ServerSocket 來監聽網絡請求,客戶端啓動 Socket

原创 SpringMVC 過濾器、攔截器

過濾器和攔截器觸發時機不一樣,過濾器是在請求進入容器後,但請求進入servlet之前進行預處理的。請求結束返回也是,是在servlet處理完後,返回給前端之前。 攔截器可以獲取IOC容器中的各個bean,而過濾器就不行,因爲攔截器

原创 Ajax短輪詢,長輪詢,SSE(Server Sent Event)輪詢 和 websocket輪詢

AJAX輪詢方式 客服端以用戶定義的時間間隔去服務器上查詢最新的數據。太短的時間間隔客服端會對服務器在短時間內發送出多個請求。 長輪詢或者COMET。服務器與客服端需要保持一條長時間的請求,它使得服務器在有數據時可以返回消息給客戶端