<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    閑人野居
    好好學習,天天向上
    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 布衣郎 閱讀(1985) 評論(0)  編輯  收藏 所屬分類: aopspring

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

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 357241
    • 排名 - 155

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产美女精品久久久久久久免费| 高清永久免费观看| 91精品视频在线免费观看| 成人永久免费高清| 亚洲乱码日产精品BD在线观看| a级毛片免费在线观看| 免费观看国产精品| 亚洲不卡在线观看| 67194熟妇在线永久免费观看| 久久精品国产亚洲沈樵| aa级毛片毛片免费观看久| 免费a级毛片视频| 日本高清免费中文在线看| 日韩免费无码一区二区视频| 成人亚洲国产va天堂| 男人的好看免费观看在线视频| 亚洲黄色三级视频| 黄瓜视频影院在线观看免费| 亚洲人成影院午夜网站| 丁香花在线观看免费观看 | 欧美亚洲精品一区二区| 精品国产免费观看久久久 | 99视频在线精品免费| 亚洲成a人片在线网站| 亚洲美女免费视频| 亚洲午夜精品一区二区麻豆| 国产美女做a免费视频软件| 黄人成a动漫片免费网站| 亚洲精品美女久久777777| 免费不卡在线观看AV| 亚洲欧洲日韩国产一区二区三区| 毛色毛片免费观看| aaa毛片视频免费观看| 亚洲色大成网站www永久| 午夜影视在线免费观看| 久99久无码精品视频免费播放| 亚洲综合精品一二三区在线| 成年女人毛片免费视频| 亚欧洲精品在线视频免费观看| 中文字幕亚洲综合久久| 又黄又大又爽免费视频|