SSM框架(Spring+SpringMVC+MyBatis)之 Spring 核心

SSM框架(Spring+SpringMVC+MyBatis)之 Spring 核心,主要做兩件事。

(1) 管理對象(IoC/DI)----- 控制反轉/依賴注入 ----- IoC控制對象的創建 ----- 對象、對象、對象(重要事情 說三遍)

(2) 管理方法的調用執行(AOP) ----- 面向切面編程

一、IoC/DI ----- 控制反轉/依賴注入(Inversion of Control / Dependency Injection)----- 橫向擴展增強、橫向擴展增強、橫向擴展增強(重要事情 說三遍)

1.描述:降低耦合度,創建對象

  • 如果調用一個類中的方法,需要new對象時,手工new對象,再 點 調用。
  • 在Spring 的IoC中,可以將代碼new對象交給Spring的配置文件完成,程序幫你new對象,不是手動new了。

2. IoC/DI 完成對象的解耦合

  • 傳統的Javaweb三層,dao、service、controller,controller調用service層,service調用到層,有依賴
  • 所以,如果換一個接口的實現類時,就要修改很多源代碼,耦合度高,所以IoC/DI 就是完成對象的解耦合的。

3. 高內聚,低耦合

  • 高內聚 是指 模塊內的功能聯繫緊密。
  • 低耦合 是指 模塊間的聯繫,接口的複雜程度低。

二、AOP ----- 面向切面編程(Aspect Oriented Programming)

1. 描述:面向切面編程,擴展功能而不修改源代碼,而是橫向擴展,增強

2. AOP的底層實現

代理機制:

(1)JDK的動態代理:針對實現了接口的類產生代理。
(2)Cglib的動態代理:針對沒有實現接口的類產生代理。

===============================================================

3. AOP開發中的概念

1,JoinPoint(連接點):所謂連接點是指那些被攔截的點,而spring中這些點就是指方法,因爲spring只支持方法類型的連接點。

2,PointCut(切入點):所謂切入點就是指我們要對那些JoinPoint進行攔截的定義。

3,Advice(通知/增強):所謂通知/增強,就是指攔截到JoinPoint後需要完成的事情。他分爲前置通知/增強,後置通知/增強,異常通知/增強,最終通知/增強,環繞

通知/增強(切面要完成的功能);

4,Introduction(引介):引介是一種特殊的Advice,在不修改代碼的前提下,引介可以在運行期爲類動態的添加一些方法或Field。

5,Target(目標):代理對象的目標對象(要增強的類)

6,Weaving(織入):把Advice應用到Target的過程

7,Proxy(代理):一個類被AOP注入增強後,就產生了一個結果代理類

8,Aspect(切面):是PointCut和Advice(Introduction)的結合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章