原创 spring源碼--IOC容器的實現:資源文件的加載過程

引言 上一篇從總體瞭解的spring IOC容器的過程–大致可以分爲資源定位,解析bean,初始化bean三個過程,那我們就分析一下spring如何對資源定位以及加載的。 加載過程 我們還是以ClassPathXmlApplica

原创 spring源碼--IOC容器的實現:容器初始化

引言 之前大致分析了spirngIOC容器的整體設計思路,接下來我們來分析一下spring是如何加載和解析bean的。 Bean加載流程 spring容器的初始化大致可以分爲3個步驟:資源定位–>解析配置–>初始化。對應到一個be

原创 spring源碼--IOC容器的實現:概述(2)

引言 上一篇分析了springIOC相關的核心接口,下面分析一下這些接口中用到的一些相關的類。 boolean BeanFactory .isTypeMatch(String name, ResolvableType type

原创 spring源碼--IOC容器的實現:概述

#引言 spring做爲java程序員必學的框架,從學校的課堂上,到實際工作中,都可以看到它的身影。之前看過一篇文章,說對於spring的源碼只需要瞭解架構,不需要關注具體的實現,不敢苟同。如果對於java程序員最重要的框架都不關

原创 分佈式鎖初探

分佈式鎖初探 爲什麼需要分佈式鎖? 需要保證在分佈式場景下只有一個線程同時在執行一個代碼片段或者一個資源同時只有一個線程在使用。 常見的場景: 分佈式任務,秒殺。 需要什麼樣的分佈式鎖? 高可用 有失效時間(避免死鎖) 可重入(

原创 JUC之ReentrantLock

JUC之ReentrantLock 引言 承接上篇JUC之AbstractQueuedSynchronizer 我們分析一下最常用的鎖 ReentrantLock,即可重入鎖。 上篇我們分析了aqs的acquire方法和relea

原创 JUC之AbstractQueuedSynchronizer

AbstractQueuedSynchronizer 從鎖說起 juc.locks包下提供了常見的鎖相關的工具,用來替代synchronized關鍵字(jdk1.5之前synchronized效率較低)和加強一些鎖功能,比如重入鎖

原创 JUC之volatile

前言 juc是java併發編程的核心,裏面的類有很多設計思想以及編程的技巧值得我們借鑑,個人認爲,一個優秀的java程序員必須熟練掌握juc. volatile 簡介 volatile在java中是一個關鍵字,用於修飾類和實例變量

原创 JUC之striped64

striped64 簡介 striped64是java8用來併發計數新加的組件,在併發環境下有更好的性能,64指的是計數64bit的數,即Long類型的數和Double類型的數。striped64是個抽象類,jdk提供了四個實現類,L

原创 JUC之atomic

Atomic 簡介 atomic包下原子操作類提供了一種用法簡單、性能高效 、線程安全地更新一個變量的方式。 atomic包下一共有12個相關的類,分爲4組,分別用於原子更新基本類型,原子更新數組,原子更新引用,原子更新字段。 使

原创 es安裝常見問題

es安裝常見問題彙總(持續更新) 1. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536

原创 vm虛擬機nat模式靜態ip配置

vm虛擬機nat模式靜態ip配置 配置虛擬機網絡 配置網關ip 配置centos文件 /etc/sysconfig/network-scripts/ifcfg-eth0 這裏的網關GATEWAY填寫上步設置的網關地址 配置dns

原创 python裝飾器

python裝飾器 定義 裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬於結構型模式,它是作爲現有的類的一個包裝。 這種模式創建了一個裝飾類,用來包裝原有的

原创 DateFormat格式化周(ww)遇到的坑

DateFormat格式化周(ww)遇到的坑 先說現象吧,有個需求我們需要獲取yyyyww格式的日期字符串,代碼如下 DateFormat df = new SimpleDateFormat("yyyyww"); String for

原创 Redis最佳實踐

Redis最佳實踐 背景知識 SERVER爲單線程處理模式,在處理用戶請求的過程中,還會定期插入定時任務,比如: 1)過期KEY的刪除 2)鏈接超時檢查 3)AOF文件重寫 4)擴容存放數據的dic容量 這些定期任務大概100ms會