Changes between Version 31 and Version 32 of waue/2011/spring


Ignore:
Timestamp:
Sep 7, 2011, 2:06:36 PM (13 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • waue/2011/spring

    v31 v32  
    898898    }
    899899}
    900 
     900}}}
    901901
    902902== 動態 aop ==
     
    10051005 動態aop 與 靜態 aop 中,(主要介面) I_Hello.java 與 (主要功能)HelloSpeaker.java 內容相同
    10061006
    1007  B. 靜態aop
     1007 * 靜態aop
    10081008 
    10091009 主要不同為: HelloProxy.java
    10101010 
    10111011 main 呼叫: IHello proxy = new HelloProxy(new HelloSpeaker());
     1012
    10121013 
    1013 
    1014  
    1015  C. 動態aop
     1014 * 動態aop
    10161015 
    10171016 主要不同為: LogHandler.java
     
    10211020 其中 I_Hello  與 HelloSpeaker 相同於 動態aop 方法
    10221021
     1022== AOP 專有名詞 ==
     1023
     1024 * Aspect
     1025
     1026將散落於各個商務物件之中的Cross-cutting concerns收集起來,設計各個獨立可重用的物件,這些物件稱之為Aspect,
     1027
     1028例如在 動態代理 中將日誌的動作設計為一個LogHandler類別,LogHandler類別在AOP的術語就是Aspect的一個具體實例
     1029
     1030 * Advice
     1031
     1032Aspect的具體實作稱之為Advice,以日誌的動作而言,Advice中會包括真正的日誌程式碼是如何實作的,
     1033
     1034像是動態代理 中的LogHandler類別就是Advice的一個具體實例,Advice中包括了Cross-cutting concerns的行為或所要提供的服務。
     1035
     1036 * Joinpoint
     1037
     1038Aspect在應用程式執行時加入商務流程的點或時機稱之為Joinpoint
     1039
     1040 * Pointcut
     1041
     1042Pointcut是一個定義,藉由這個定義您可以指定某個Aspect在哪些Joinpoint時被應用至應用程式之上
     1043
     1044 * Target
     1045
     1046一個Advice被應用的對象或目標物件,
     1047
     1048例如 動態代理 中的HelloSpeaker就是LogHandler這個Advice的Target。
     1049
     1050 * Introduction
     1051
     1052對於一個現存的類別,Introduction可以為其增加行為,而不用修改該類別的程式,具體的說,您可以為某個已撰寫、編譯完成的類別,在執行時期動態加入一些方法或行為,而不用修改或新增任何一行程式碼。
     1053
     1054 * Proxy
     1055
     1056在之前 從代理機制初探 AOP 與 動態代理 中,已經使用實際的程式範例介紹過代理機制的實現,Spring的AOP主要是透過動態代理來完成。
     1057
     1058 * Weave
     1059
     1060Advice被應用至物件之上的過程稱之為縫合(Weave)
     1061
     1062[Image(http://caterpillar.onlyfun.net/Gossip/SpringGossip/images/AOPConcept-3.JPG)]
     1063
     1064
     1065
    10231066 = eclipse 開發環境 =
    10241067[wiki:waue/2011/SpringEclipse 詳見SpringEclipse]