<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

    前面主要介紹了如何通過xml實現aop編程,下面主要介紹如何通過@AspectJ來實現。
    為了使@AspectJ 支持生效,
    需要做以下步驟:
    xml中設置

    <aop:aspectj-autoproxy/>

    或者
    在xml中加入
    <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />

    聲明 aspect

    <bean id="myAspect" class="org.xyz.NotVeryUsefulAspect">

    ?? <!-- configure properties of aspect here as normal -->

    </bean>

    ?

    package org.xyz;

    import org.aspectj.lang.annotation.Aspect;

    ?

    @Aspect

    public class NotVeryUsefulAspect {

    ?

    }

    聲明 pointcut

    @Pointcut("execution(* transfer(..))")

    public void transfer() {}


    聲明 advice

    Before advice:

    @Before("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")

    ? public void doAccessCheck() {

    ??? // ...

    ? }

    After returning advice:

    @AfterReturning("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")

    ? public void doAccessCheck() {

    ??? // ...

    ? }

    或者

    @AfterReturning(
    pointcut="com.xyz.myapp.SystemArchitecture.dataAccessOperation()",
    returning="retVal")

    public void doAccessCheck(Object retVal) {

    ??? // ...

    ? }

    After throwing advice:

    @AfterThrowing("SystemArchitecture.dataAccessOperation()")

    ? public void doRecoveryActions() {

    ??? // ...

    ? }

    或者

    @AfterThrowing(

    ??? pointcut=" SystemArchitecture.dataAccessOperation()",

    ??? throwing="ex")

    ? public void doRecoveryActions(DataAccessException ex) {

    ??? // ...

    ? }

    After (finally) advice:

    @After("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")

    ? public void doReleaseLock() {

    ??? // ...

    ? }

    Around advice:

    @Around("com.xyz.myapp.SystemArchitecture.businessService()")

    ? public Object doBasicProfiling( ProceedingJoinPoint pjp) throws Throwable {

    ??? // start stopwatch

    ??? Object retVal = pjp.proceed();

    ??? // stop stopwatch

    ??? return retVal;

    ? }

    Advice parameters:

    @Before("com.xyz.myapp.SystemArchitecture.dataAccessOperation() &&" + "args(account,..)" )

    public void validateAccount(Account account) {

    ? // ...

    }

    聲明參數名稱:

    @Before(

    ?? value="com.xyz.lib.Pointcuts.anyPublicMethod() && " +

    ???????? "@annotation(auditable)",

    ? ?argNames="auditable" )

    public void audit(Auditable auditable) {

    ? AuditCode code = auditable.value();

    ? // ...

    }?

    Advice 排序:

    一般以聲明的方法次序為先后

    不同的 Advice ,通過實現 Ordered 接口,來排序


    Introductions

    用于引入新的接口

    @Aspect

    public class UsageTracking {

    ?

    ? @DeclareParents(value="com.xzy.myapp.service.*+",

    ????????????????? defaultImpl=DefaultUsageTracked.class)

    ? public static UsageTracked mixin;

    ?

    ? @Before("com.xyz.myapp.SystemArchitecture.businessService() &&" +

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

    ? public void recordUsage(UsageTracked usageTracked) {

    ??? usageTracked.incrementUseCount();

    ? }

    ?

    }

    ?

    posted on 2006-09-15 19:31 布衣郎 閱讀(1641) 評論(1)  編輯  收藏 所屬分類: aopspring

    FeedBack:
    # re: spring aop編程(二)
    2008-04-27 21:00 | 只喝可樂的貓
    直接COPY SPRING 中的文檔。也不加注釋。。
    有意義嗎。
    。。太假了。。
    做技術的直接COPY來貼來網上。  回復  更多評論
      

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

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 358025
    • 排名 - 156

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲精品无码av| 亚洲的天堂av无码| 免费无遮挡无遮羞在线看| 日本特黄特色aa大片免费| 中国亚洲呦女专区| 午夜高清免费在线观看| 亚洲日本中文字幕天天更新| 一个人免费观看在线视频www| 亚洲人成网网址在线看| 一个人免费高清在线观看 | 久久久久国产精品免费免费搜索 | 99精品视频在线观看免费专区| 亚洲春色在线视频| 国产成人精品免费久久久久| 久久亚洲精精品中文字幕| 37pao成人国产永久免费视频| 亚洲黄色免费电影| 成人浮力影院免费看| 亚洲综合精品第一页| 国产jizzjizz视频免费看| 一级毛片在线免费视频| 国产亚洲人成无码网在线观看| 女人隐私秘视频黄www免费| 久久亚洲成a人片| 国产成人无码免费看视频软件 | 国产成+人+综合+亚洲专| 日韩成人免费aa在线看| 无码精品人妻一区二区三区免费| 亚洲午夜精品一级在线播放放 | 无码专区—VA亚洲V天堂| 亚洲国产精品免费观看| AV激情亚洲男人的天堂国语| 国产亚洲?V无码?V男人的天堂| 一级特黄aa毛片免费观看| 456亚洲人成在线播放网站| 国产嫩草影院精品免费网址| 中文字幕无码免费久久9一区9 | 黄桃AV无码免费一区二区三区| 亚洲综合成人网在线观看| 在线观看无码的免费网站| 一级成人a做片免费|