1. 程式人生 > >Spring基礎(二)--- 思想

Spring基礎(二)--- 思想

T1: Spring AOP

Spring的核心就是面向切面程式設計,AOP最典型實現就是攔截器。

AOP有幾個概念:

1.切面:從業務邏輯中,分離出來的橫切邏輯,如:日誌,監控;

2.切點:匹配目標連線類的條件;

3.增強(advice):具體切入目標類的類;

4.連線點:應用程式中允許切面切入的點;

5.目標:目標方法(JDK代理)或目標類(CGLIB代理)

6.代理:JDK代理,CGLIB代理。或是通過 ProxyFactory 類生產。

切點/連線點/增強的關係:

增強總是在連線點處執行,而切點決定了是哪一個連線點。point cut 是一個描述資訊, 它修飾的是 join point, 通過 point cut, 我們就可以確定哪些 join point 可以被織入 Advice. 

代理類=原來的類+增強的類

對於增強來說,有多種,分為兩大類:

一.對方法的增強:

1.前置

2.後置

3.環繞

4.返回:在方法返回結果後執行,該增強可以接收到目標方法返回結果。

5.丟擲

二.對類的增強:

引入增強:動態實現某個增強。

T2: Spring IoC and DI

控制反轉和依賴注入其實是一個概念,一種程式設計思想:一段程式中,會有很多依賴的物件和資料,通過xml配置以反射的原理將物件動態的生成,以此解偶,物件的生成只需要通過配置交給Spring容器管理。