原创 spring boot中WebMvcConfigurationAdapter抽象類的作用

這個類是SpringBoot內部提供專門處理用戶自行添加的配置,裏面不僅僅包含了修改視圖的過濾還有其他很多的方法,包括我們後面章節要講到的攔截器,過濾器,Cors配置等。 開始前還是有點要注意的: springBoot 的版本從1.x 升

原创 java 鎖和synchronizied的區別

java 在多線程併發編程中,爲了線程安全,我們需要對線程數據進行同步,一般的實現方式就是synchronized和重入鎖Lock(ReetrantLock,ReadWriterLock等) 共同點: 都是通過加鎖方式來實現同步,而且都是

原创 java單例設計模式

單例的條件是: 1.私有化構造函數 2.私有化靜態對象實例 3.對外提供一個方法可以獲取靜態私有化實例對象 最常用的二種:餓漢式和懶漢式 一、餓漢式顧名思義就是上來不管三七二十一就創建一個實例對象。所以即使在多線程併發的情況下也是線程安全

原创 學習spring cloud隨筆

Spring cloud的服務治理組件使用spring cloud netflix,它是大多集成了netflix公司開發的eureka(服務發現和服務註冊),ribbon(負載均衡),Hystrix(斷路器)、Feign(RESTful

原创 消息隊列的應用

一、消息隊列的概述 消息隊列是分佈式系統中重要的中間件,主要解決應有耦合,異步消息,流量削峯等功能,實現高性能,高可用(HA),可伸縮和最終一致性的架構。常見的消息隊列有:activeMQ,RabbitMQ,kafka,zeroMQ,Me

原创 spring boot + redis 配置

1.引入reids包 spring-boot-starter-redis(springboot版本1.4版本前),spring-boot-starter-data-redis(1.4版本後) 選擇合適的API: 這個主要是根據redis存

原创 java中線程的幾種狀態

線程總共有6種狀態 1.初始狀態,也叫新建,新創建了一個線程對象,但還沒有調用start()方法。 2,運行狀態或者就緒,Java線程中將就緒(ready)和運行中(running)兩種狀態籠統的稱爲“運行”。 線程對象創建後,其他線程(

原创 java volatile關鍵字在多線程環境下的作用

提到volatile之前,我們首先來看看java的內存模型,因爲他們之間有密切的關係。 計算機在執行的過程中,每條指令都有cpu來完成運算,勢必要涉及讀取數據和寫入數據,由於程序執行過程中,數據是存放在主內存中,因此任何對數據的操作都需要

原创 java併發庫的同步工具

CountDownLatch  同步倒數計數器 CountDownLatch是一個同步倒數計數器。CountDownLatch允許一個或多個線程等待其他線程完成操作。 CountDownLatch對象內部存有一個整數作爲計數器。調用cou

原创 redis分佈式鎖的實現

分佈式鎖一般有三種實現方式: (1)數據庫的樂觀鎖(一般通過版本控制來確定那個可以更新,可以實現下單減庫存高併發場景(數據量不大的情況,數據量太大就使用redis)) (2)基於redis的分佈式鎖 (3)基於zookeeper的分佈式鎖

原创 springmvc 是單例還是多例呢

springmvc默認是單例的。 我們可以通過以下代碼就能可以驗證: @RestController @RequestMapping(value = "hello") public class HelloController {