Spring原始碼閱讀學習一

rgqancy發表於2017-05-08

昨天抽時間閱讀Spring原始碼,先從spring 4.x的core包開始吧,除了core和util裡,首當其衝的就是asm和cglib。

要實現兩個類例項之間的欄位的複製功能:

多年之前用C#,因為閱讀原始碼少,專案也比較小,自己使用反射機制就封裝一個類似的方法來完成了(反正微軟有錢有時間)。

前一段用Java,因為沒系統讀過Spring的原始碼,不知道有BeanUtils裡的copy方法。

同事甲,用到了BeanUtils裡的copy方法,他說也是見到他的同事這麼用。

同事乙,和我當年用C#實現似的,重複造輪子(也算鍛鍊自己的編碼能力了)。

我就自己抽取一個copy方法,採用正規表示式批量生成了非反射方式的set/get(這樣效率也還高些,以後方法內部也能重構)。

看了幾篇比較好的文章:

http://blog.csdn.net/jianhua0902/article/details/8155368

文章從程式設計需求出發,來龍去脈很清楚。

 

http://www.jianshu.com/p/f8b892e08d26

死摳 CGLIB中BeanCopier原始碼實現

 

https://yq.aliyun.com/articles/14528

雲棲社群:cglib原始碼學習交流

 

http://www.cnblogs.com/bjzhanghao/archive/2004/07/30/28607.html#3683984

java老司機寫的。

 

http://www.cnblogs.com/softidea/p/5608962.html

 

 

http://blog.csdn.net/fenglibing/article/details/7080340

 

https://www.ibm.com/developerworks/cn/java/j-lo-asm30/index.html

IBM社群,很早的技術文章。

 

相關文章