javascript
Spring源码由浅入深系列一 简介
概述:
? ? ? ? Spring是一個企業級的開源框架。它提供輕量級的依賴注入、面向切面編程、全方位的整合框架。
下圖是Spring框架的組成部分,各部分內容作了簡單說明。
依賴注入:?
? ? ? ??依賴注入是Spring框架的靈魂。它是一種解耦組件之間關系的高層設計模式。
依賴注入案例分析:
? ? ? ??現在有一個業務流程中需要把數據保存到軟盤中去。最直觀的方法就是直接在業務流程中創建一個軟盤,用軟盤的方式保存數據。如下圖:
? ? ? ??那如果現在業務變更,我可以讓客戶選擇用軟盤來保存數據,或者是U盤。那可能的解決方式是面向接口編程,由工廠幫助我們去創建具體介質。如下圖所示:
? ? ? ??在這里請注意,我們通常的做法是在業務流程中,根據客戶的選擇,由工廠生成一個特定介質給業務,這就是我們常說的簡單工廠模式。但是,也可以利用反射在工廠里去創建、裝配業務與介質。業務與具體的介質完全沒有關系,由工廠提供。這時候工廠就變為了一個依賴注入的容器。在Spring中,這個容器由BeanFactory實現。
? ? ? ??Spring的靈魂是依賴注入,依賴注入靈魂就是反射。它的整個實現都是由Java反射去支撐的。
面向切面:
? ? ? ??把一些公共功能定義成單獨對象,然后在不修改其它類的前提下,將公共功能加入到這些類中。面向切面常用于緩存統一處理、統一異常處理等等。
AOP(面向切面)概念:
? ? ? ??Joinpoint(連接點): 程序執行過程中某個特定的點,比如方法調用的時候或者拋出異常的時候
? ? ? ??PointCut(切入點): 需要被添加上通知的連接點的集合。
? ? ? ??Advice(通知): 在連接點,動態嵌入的一段獨立代碼(通知常用來調用系統組件方法)。
? ? ? ??Aspect(切面): 切入點和Advice的結合(抽象概念:定義在切入點調用通知)
? ? ? ??Target(目標對象): 需要被添加上Advice的對象
? ? ? ??代理對象:AOP框架生成的對象。在目標對象的基礎上,添加了其他操作
? ? ? ??面向切面的實現是通過動態代理實現的:JDK動態代理、CGLIB動態代理。
? ? ? ??這一章,主要從宏觀上把握Spring.到下一章,我們開始剖析Spring的源碼。
轉載于:https://www.cnblogs.com/writeLessDoMore/p/6939408.html
總結
以上是生活随笔為你收集整理的Spring源码由浅入深系列一 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下VTK6.0.0安装详解
- 下一篇: 10 个最佳的 Node.js 的 MV