閑人野居
          好好學習,天天向上
          posts - 57,  comments - 137,  trackbacks - 0
          在spring2.0中,aop發生了很大的變化:
          主要分為兩大方面
          1.支持簡單的aop xml配置
          2.支持@AspectJ的注釋

          先來看一看第一種情況:
          申明一個aspect,在xml中的申明如下:

          <aop:config>

          ? <aop:aspect id="myAspect" ref="aBean">

          ??? ...

          ? </aop:aspect>

          </aop:config>

          <bean id="aBean" class="...">

          ? ...

          </bean>


          申明pointcut

          <aop:config>

          ? <aop:pointcut id="businessService"

          ??????? expression="execution(* com.xyz.myapp.service.*.*(..))"/>

          </aop:config>


          申明advice

          Before advice

          <aop:aspect id="beforeExample" ref="aBean">

          ??? <aop:before

          ????? pointcut-ref="dataAccessOperation"

          ????? method="doAccessCheck"/>

          </aop:aspect>

          After returning advice:

          <aop:aspect id="afterReturningExample" ref="aBean">

          ?

          ??? <aop:after-returning

          ????? pointcut-ref="dataAccessOperation"

          ????? method="doAccessCheck"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          或者帶有返回參數

          <aop:aspect id="afterReturningExample" ref="aBean">

          ?

          ??? <aop:after-returning

          ????? pointcut-ref="dataAccessOperation"

          ???? ?returning="retVal"

          ????? method="doAccessCheck"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          ?

          After throwing advice

          <aop:aspect id="afterThrowingExample" ref="aBean">

          ?

          ??? <aop:after-throwing

          ????? pointcut-ref="dataAccessOperation"

          ????? method="doRecoveryActions"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          或者帶有throwing

          <aop:aspect id="afterThrowingExample" ref="aBean">

          ?

          ??? <aop:after-throwing

          ????? pointcut-ref="dataAccessOperation"

          ????? throwing="dataAccessEx"

          ????? method="doRecoveryActions"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          After (finally) advice

          <aop:aspect id="afterFinallyExample" ref="aBean">

          ?

          ??? <aop:after

          ????? pointcut-ref="dataAccessOperation"

          ????? method="doReleaseLock"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          Around advice

          <aop:aspect id="aroundExample" ref="aBean">

          ?

          ??? <aop:around

          ????? pointcut-ref="businessService"

          ????? method="doBasicProfiling"/>

          ?????????

          ??? ...

          ???

          </aop:aspect>

          Advice parameters

          <aop:before

          ? pointcut="Pointcuts.anyPublicMethod() and @annotation(auditable)"

          ? method="audit"

          ??arg-names="auditable"/>


          對于引入接口(Introductions):

          <aop:aspect id="usageTrackerAspect" ref="usageTracking">

          ? <aop:declare-parents

          ????? types-matching="com.xzy.myapp.service.*+",

          ????? implement-interface="UsageTracked"
          ????? default-impl=" service.tracking.DefaultUsageTracked"/>

          ? <aop:before

          ??? pointcut="com.xyz.myapp.SystemArchitecture.businessService()

          ????????????? and this(usageTracked)"

          ??? method="recordUsage"/>

          </aop:aspect>

          ?
          posted on 2006-09-15 09:41 布衣郎 閱讀(1987) 評論(0)  編輯  收藏 所屬分類: aopspring

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(12)

          隨筆分類(59)

          隨筆檔案(57)

          blog

          java

          uml

          搜索

          •  

          積分與排名

          • 積分 - 357333
          • 排名 - 155

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东山县| 饶河县| 乌鲁木齐县| 沾化县| 邢台市| 海盐县| 广东省| 神农架林区| 武隆县| 五家渠市| 察隅县| 井研县| 临湘市| 宜章县| 佛教| 高州市| 陈巴尔虎旗| 海淀区| 东安县| 德钦县| 威海市| 丹寨县| 阿荣旗| 晋江市| 谢通门县| 榆社县| 锡林郭勒盟| 红原县| 炉霍县| 天峻县| 巴楚县| 平谷区| 乐东| 黔南| 凤翔县| 长寿区| 保康县| 广丰县| 渝北区| 天长市| 高雄县|