一、本節課程的目的
1、瞭解自研框架的總體架構設計;
2、瞭解Spring的總體結構以及學習路徑;
二、出於信仰學習Spring的簡史
1、一個問題
如何能讓應用程序能以超出當時大衆所慣於接受的易用性和穩定性與J2EE平臺上的不同組件合作?
2、Spring特點
詳盡的文檔;
快速方便地集成項目用到的技術;
三、Spring設計的初衷
用於構造Java應用程序的輕量級框架;
1、可以採用Spring來構造任何程序,而不侷限於Web程序;
2、輕量級:最少的侵入,與應用程序低耦合,接入成本低;
3、最直觀的感受:基於POJO,構建出穩健而強大的應用;
四、Spring的野心
爲各大技術領域提供支持;
微服務、移動開發、社交API集成、安全管理、雲計算等等;
五、Spring框架圖
六、Spring基礎核心模塊預覽
1、spring-core
包含框架基本的核心工具類,其他組件都要使用到這個包裏的類;
定義並提供資源的訪問方式;
2、spring-beans
Spring主要面向Bean編程(BOP);
Bean的定義、解析、創建;
BeanFactory;
3、spring-context
爲Spring提供運行時環境,保存對象的狀態;
擴展了BeanFactory;
ApplicationContext;
4、spring-aop
最小化的動態代理實現;
JDK動態代理;
Cglib;
只能使用運行時織入,僅支持方法級編織,僅支持方法執行切入點;
七、爲了完整而講的非核心模塊
spring-aspectj + spring-instrument : Full AspectJ
在Java語言中,從織入切面的方式來看,存在三種織入方式:
編譯期Weaving;
類加載期Weaving;
運行期Weaving;