原创 高併發情況下如何保證數據的一致性,從哪些放方面下手.

1.業務層面樂觀鎖CAS 業務層面樂觀鎖CAS,使用版本號解決ABA問題,實際使用中使用時間戳,更新的時候把查出來的時間戳帶上,如果更新失敗可以自旋,獲取最近值和時間戳,直到更新成功。 2.DB層面開啓一個事務 DB層面開啓一個事務,然

原创 Spring中一個配置類添加@Congfiguration和沒有@Congfiguration的區別是什麼?源碼分析

直接上代碼實例看效果 1、添加@Congfiguration的 @Configuration @ComponentScan("com.lquan.scan.scan1") public class Configration { } 測試

原创 Spring註解中@Configuration和@Configurable的區別及具體案例實現

@Configuration 該註解是可以用來替代XML文件。 以前我們配置bean時,都是寫在applicationContext.xml文件中的。 有了這個註解後,我們就可以編寫一個類在其上面加上該註解。即配置類。 在配置類中可以在方

原创 spring源碼中BeanFactory、BeanDefinition、BeanDefinitionRegistry、AnnotatedBeanDefinition幾個關鍵的接口及相關實現

前言 在前面分析Spring IoC容器的時候,貫穿全文的一個概念:Bean定義信息。它是Spring容器的一個核心概念,那麼本文就深入分析一下BeanDefinition這個接口(類)。 Spring容器啓動的過程中,會將Bean解析成

原创 Spring和SpringBoot中的@Component 和@ComponentScan註解用法介紹和注意事項及相關實例

@ComponentScan 如果你理解了ComponentScan,你就理解了Spring Spring是一個依賴注入(dependency injection)框架。所有的內容都是關於bean的定義及其依賴關係 定義Spring

原创 註解@Mapper、@MapperScan區別和使用場景及實例

1、@Mapper註解: 作用:在接口類上添加了@Mapper,在編譯之後會生成相應的接口實現類 添加位置:接口類上面 @Mapper public interface UserDAO {    //代碼 } 如果想要每個接口都要

原创 BeanFactory和FactoryBean的區別及相關分析

  我所用的Spring版本是5.0.x的版本 BeanFactory和FactoryBean都是接口 1、BeanFactory 用於訪問SpringBean容器的根接口。這是bean容器的基本客戶機視圖; 由BeanFactory中使

原创 爲什麼需要重寫equals方法

默認equals在比較兩個對象時,是看他們是否指向同一個地址的。 但有時,希望兩個對象只要是某些屬性相同就認爲他們的quals爲true。比如: Student s1 = new Student(1,"name"); Student s2

原创 線程池參數及拒絕策略

java多線程開發時,常常用到線程池技術,這篇文章是對創建java線程池時的七個參數的詳細解釋。     當需要加入進程時: (1)當前線程數小於核心線程數,當前線程直接運行。 (2)當前線程數大於核心線程數,當前線程會加入到阻塞隊列中

原创 CAS的ABA問題詳解及解決辦法

CAS的ABA問題詳解 ABA問題 在多線程場景下CAS會出現ABA問題,關於ABA問題這裏簡單科普下,例如有2個線程同時對同一個值(初始值爲A)進行CAS操作,這三個線程如下 1.線程1,期望值爲A,欲更新的值爲B 2.線程2,期望值

原创 MySQL的索引要使用B 樹,而不是其它樹

InnoDB的一棵B+樹可以存放多少行數據? 答案:約2千萬 爲什麼是這麼多? 因爲這是可以算出來的,要搞清楚這個問題,先從InnoDB索引數據結構、數據組織方式說起。 計算機在存儲數據的時候,有最小存儲單元,這就好比現金的流通最小單位是

原创 Linux vmstat命令實戰詳解

vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換情況,IO讀寫情況。這個命令是我查看Linux/Unix最喜愛的命令,一個是Linux/Unix

原创 @RequestParam @RequestBody @ResponseBody區別

@requestBody註解的使用   @RequestBody這個一般處理的是在ajax請求中聲明contentType: “application/json; charset=utf-8”時候。也就是json數據格式或者 xml 數據

原创 Spring MVC 學習總結之 - URL參數傳遞

  在學習 Spring Mvc 過程中,有必要來先了解幾個關鍵參數:    @Controller:          在類上註解,則此類將編程一個控制器,在項目啓動 Spring 將自動掃描此類,並進行對應URL路由映射。 @Con

原创 hashMap原理

HashMap的工作原理 HashMap基於hashing原理,我們通過put()和get()方法儲存和獲取對象。當我們將鍵值對傳遞給put()方法時,它調用鍵對象的hashCode()方法來計算hashcode,然後找到bucket