原创 Git分支管理實踐 - MrtfGitFlow

Git分支管理實踐 - MrtfGitFlow

原创 EasyCode 簡介

EasyCode是基於IntelliJ IDEA Ultimate版開發的一個代碼生成插件,主要通過自定義模板(基於velocity)來生成各種你想要的代碼。通常用於生成Entity、Dao、Service、Controller。

原创 深入理解JVM - 系統性能優化

系統性能優化並不是一上來就是JVM優化,相反JVM優化幾乎是最後的手段了。影響一個系統的性能的因素非常多,如圖: 從服務本身來看,影響服務性能的主要包扣: 我們寫代碼時所選擇的數據結構和算法 服務開啓的線程時是否合理 WEB應

原创 在RedisTemplate中使用scan代替keys指令

SCAN 簡介 SCAN 命令及其相關的 SSCAN 命令、 HSCAN 命令和 ZSCAN 命令都用於增量地迭代(incrementally iterate)一集元素(a collection of elements): SC

原创 Spring Bean 的註冊和注入的幾種常用方式和區別

Spring 註冊Bean: 包掃描 + 組件標註註解(@Controller、@Service、@Repository、@Component),一般項目裏面使用。 使用@Bean註解,一般導入第三方組件的時候使用。 使用@Im

原创 Spring 源碼(五)初始化所有單例Bean,並註冊到容器(Bean的生命週期)

在這之前我們先來看下refresh()方法,它完整的描述了整個ApplicationContext的初始化過程。這裏看起來更像是對容器進行初始化的模板或者提綱。 @Override public void refresh() th

原创 Cglib 與 JDK動態代理

AOP 代理的兩種實現: jdk是代理接口,私有方法必然不會存在在接口裏,所以就不會被攔截到; cglib是子類,private的方法照樣不會出現在子類裏,也不能被攔截。 JDK 動態代理。 具體有如下四步驟: 通過實現 I

原创 Spring 源碼(九)@Autowired註解實現原理(Spring Bean的自動裝配)

@Autowired註解的實現過程,其實就是Spring Bean的自動裝配過程。通過看@Autowired源碼註釋部分我們可以看到@Autowired的實現是通過AutowiredAnnotationBeanPostProces

原创 Spring 源碼(四)解析配置類

我們要找出所有符合條件的業務Bean,首先我們需要知道在Spring中什麼樣的Bean是符合條件的,是需要容器來管理的: 使用組件標註註解的Bean(@Controller、@Service、@Repository、@Compo

原创 Mybatis 配置詳解

完整配置 mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD

原创 Spring 核心註解

@Configuration 配置類註解 聲明一個類是配置類,等同於配置文件中的applicationcontext.xml。 加載Spring配置的兩種方式: ClassPathXmlApplicationContext XM

原创 Spring 源碼(十)Spring Aware自動裝配原理

Spring Aware自動裝配有兩種實現方式: 在初始化Bean的initializeBean方法中執行invokeAwareMethods方法 通後置處理器ApplicationContextAwareProcessor來實

原创 Spring 源碼(十一)Spring流程彙總

Spring 容器初始化流程 Spring 容器初始化流程大致流程如下: this():註冊內置的BeanPostProcessor的BeanDefinition到容器 register(annotatedClasses):註

原创 Mybatis 源碼(四)Mybatis Excuter框架

我們在上一章介紹到,Mybatis會將所有數據庫操作轉換成iBatis編程模型,通過門面類SqlSession來操作數據庫,但是我們深入SqlSession源碼我們會發現,SqlSession啥都沒幹,它將數據庫操作都委託給你了E

原创 深入理解JVM - 內存溢出實戰

Java堆溢出 Java堆用於存儲對象實例,只要不斷地創建對象,當對象數量到達最大堆的容量限制後就會產生內存溢出異常。最常見的內存溢出就是存在大的容器,而沒法回收,比如:Map,List等。 內存溢出:內存空間不足導致,新對象