原创 spring源碼閱讀(2)-aop之動態代理

spring AOP動態代理使用的是運行期織入的動態代理方式:有java原生的動態代理和cglib動態代理兩種方式可選,下面我們爲這兩種方式分別編寫一個實例,並在原理上做一些較深的介紹。 1、JAVA動態代理 java的動態代理是基於接口

原创 spring源碼閱讀(2)-aop概念術語

既然想看aop了我想您應該知道AOP的,我先不介紹等我把幾個術語介紹完也就清晰了 1、連接點(Joinpoint) 我這裏就具象化了,這個連接點在spring中就是一個函數的前、後、環繞、返回、異常這些程序可以執行的點。 兩個信息:一個是

原创 spring源碼閱讀(1)- ioc依賴注入之bean加載

還是先看下DefaultListableBeanFactory的類結構圖  我們從User user = (User) beanFactory.getBean("user");入手進入bean的加載管理流程。 這裏還是堅持走主線的流程,

原创 spring源碼閱讀(1)- ioc依賴注入之"helloworld"

public static void main(String[] args){ ClassPathResource classPathResource = new ClassPathResource("iocarch/b

原创 spring源碼閱讀(1)- ioc依賴注入之bean解析

首先我們先大致對BeanDefinition做一個宏觀功能上的瞭解: 1、bean的實現類,(可通過實現類的全限定名反射 創建類對象) 2、bean屬性數據 3、bean依賴(父類) 4、行爲配置-聲明週期相關的init-method,d

原创 spring源碼閱讀(2)-aop之jdk動態代理深入解析

續spring源碼閱讀(2)-aop之j動態代理 我們從需求作爲動態代理髮展的切入吧 現在有5個已經投產了的run100m的實現,我們新的需求需要監控不同實現的運行性能,如果我們針對這五個實現分別去添加性能監控的代碼,如此就造成兩個問題:

原创 activemq故障1-掃碼結果查詢故障

故障描述 中行掃碼支付接入系統,併發量稍微高一點,就有不時出現查詢任務發送了,但是沒有線程接收到任務查詢信息的故障。 故障原因 系統當時設置的消費者併發量是5個,採用了事務消息確認機制,使用了默認的prefetchSize,而事務的pre

原创 數據結構與算法分析-複雜度總結

複雜度作爲數據結構與算法中的重中之重,我根據我的認識度做了如下思維導入的概括總結:  對思維導圖感興趣的可以點擊下面鏈接下載:https://download.csdn.net/download/cygodwg/10694023  使用

原创 spring獲取資源的classpath與classpath*

二者區別用一個小應用示例說明吧: 比如有三個模塊一個模塊對應一個配置文件,分別是module1.xml,module2.xml.module3.xml均放置到com.smart目錄下。 每個模塊單獨打成jar包, classpath*:c

原创 併發編程-發佈與逸出

發佈:對象能在當前作用域之外的代碼中使用。 發佈方式: 1、對象引用保存到其他地方 2、public方法返回對象引用 3、引用傳遞到其他方法 某個不該發佈的對象發佈,這種情況成爲逸出 封裝使得程序的正確性進行分析變得可能,這也是封裝最重要

原创 併發編程的安全性(2)

安全:安全的首先是正確的且是我們預期的, 正確性:某個類的行爲與其規範完全一致。 在良好的規範中通常會定義各種不變性條件來約束對象的狀態,以及定義各種後驗條件來描述對象操作的結果。我們根據這些規範在單線程中運行獲取正確的預期結果,代表這個

原创 併發的安全問題1——前奏

進入併發安全性之前,我們得先了解幾個概念。 臨界區:同一時刻,只能被一個線程訪問的共享資源,實現臨界區的方式很多,我們後面會有列出。 阻塞、非阻塞:阻塞就是進入臨界區之前,沒佔到坑位,你得排隊,還不能走。非阻塞就是坑位被佔,回去,過會來看

原创 volatile功能與原理

功能: volatile提供了稍弱的同步機制。被volatile修飾的變量可確保將變量的更新及時通知到其他線程。 編譯器不會針對volatile修改的變量與其他變量內存重排序。 valatile不會緩存到寄存器。 訪問volatile不會

原创 JAVA I/O與java web編碼全面分析

引子 爲什麼要編碼 首先理解計算機的基本存儲單元(byte),其最多能表達256個字符,而世界語言何其複雜,是遠遠大於256的, 所以爲了讓計算機能表現各種語言,就需要編碼。 怎麼編碼: 也就是約定翻譯規範,下面簡要概述一些我們比較常用的

原创 千篇一律的囉嗦,不重要,也很重要

我們要了解幾個問題 爲什麼使用多線程? 要充分利用系統的資源,在這個多核的時代,明明有一雙手,非要單手幹活,這可不做賤自己的能力麼,當然作爲資格的老程序員,深夜單手的幹活還是非常有利的^-^. 多線程是否就一定比單線程強? 不一定,線程切