談談對ioc,aop的理解

Ioc:控制反轉

      定義:Ioc—Inversion of Control,即“控制反轉”,不是什麼技術,而是一種設計思想。在Java開發中,Ioc意味着將你設計好的                   對象交給容器控制,而不是傳統的在你的對象內部直接控制。如何理解好Ioc呢?理解好Ioc的關鍵是要明確“誰控制誰,                   控制什麼,爲何是反轉(有反轉就應該有正轉了),哪些方面反轉了”,那我們來深入分析一下:

      正轉與反轉:

                正轉:傳統的應用程序由我們在對象中主動去創建對象依賴

                反轉:程序中需要的對象由ioc容器創建,程序直接調用即可。

     DI(依賴注入):

                被注入對象依賴IoC容器配置依賴對象

     注入對象方式:註解,xml配置(傳參:構造方法,set)

     

      ioc容器控制對象,應用程序依賴於ioc容器,ioc容器注入某個對象,

      注入某個對象所需要的外部資源(包括對象、資源、常量數據)

Aop:面向切面編程

    實現:比如日誌,事務,權限

    AOP的基本概念:

      (1)Aspect(切面):通常是一個類,裏面可以定義切入點和通知

      (2)JointPoint(連接點):程序執行過程中明確的點,一般是方法的調用

      (3)Advice(通知):AOP在特定的切入點上執行的增強處理,有before,after,afterReturning,afterThrowing,around

      (4)Pointcut(切入點):就是帶有通知的連接點,在程序中主要體現爲書寫切入點表達式

      (5)AOP代理:AOP框架創建的對象,代理就是目標對象的加強。Spring中的AOP代理可以使JDK動態代理,

          也可以是CGLIB代理,前者基於接口,後者基於子類

   底層:

      spring aop默認實現的是jdk的動態代理,當代理的是類的時候,自動切換cglib代理;

       jdk:基於接口    cglib:基於子類

      

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