1. 程式人生 > 遊戲 >PS+港服九月會免遊戲公佈 《殺手2》等

PS+港服九月會免遊戲公佈 《殺手2》等

  • aop思想:橫向重複,縱向抽取

spring能夠為容器中管理的物件生成動態代理物件
以前我們要使用動態代理,我們需要自己呼叫下面這個方法。
Proxy.newProxyInstance(xx,xx,xx)生成代理物件
spring aop能夠幫我們生成代理物件

  • spring實現aop的原理

  1. 動態代理(其侷限性,被代理物件必須要實現介面,才能產生代理物件,如果沒有介面將不能使用動態代理技術)
    Proxy.newProxyInstance(classLoader.Interface[] arr,InvocationMandeler handler)
  2. cglib代理(其優點,作為第三方代理技術,cglib可以對任何類生成代理,代理的原理是對目標物件進行繼承代理。但如果目標是被final修飾符修飾,那麼該類無法被cglib代理)
    總結,有介面存在時,優先使用動態動態,無介面時用cglib代理。
    spring aop中的名詞解釋
  • Joinpoint(連線點):所謂連線點是指那些被攔截到的點,在spring中,這些點指的是方法,因為spring只支援方法型別的連線點
  • Pointcut(切入點):所謂切入點是指我們要對哪些Joinpoint進行攔截的定義
  • Advice(通知/增強):所謂通知是指攔截到Joinpoint之後要做的事情就是通知,通知分為前置通知,後置通知,異常通知,最終通知,環繞通知(切面要完成的功能)
  • Introduction(引介):引介是一種特殊的通知在不修改程式碼的前提下,Introduction可以以執行期為類,動態地新增一些方法或Field
  • Target(目標物件):代理的目標物件
  • Weaving(織入):是指把增強應用到目標物件來建立新的代理物件的過程,spring採用動態代理來織入,而AspectJ採用編譯期織入和類裝載期織入
  • Proxy(代理):一個類被AOP織入增強後,就產生一個結果代理類Aspect(切面),是切入點和通知(引介)的結合。

    -## spring aop
    1.導包(4(spring四個核心包beans,context,core,expression)+2(日誌包hamcreate-core-1.3,junit-4.1)+2[spring aop,spring aspects]+2[aop聯盟包com.springsource.org.aopalliance+織入包com.springsource.org.aspectj.weaver])
    2.準備目標物件
    {使用spring aop本質就是幫我們生成代理物件}
    3.準備通知