<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

    搜索

    •  

    積分與排名

    • 積分 - 358015
    • 排名 - 156

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜亚洲国产精品福利| 亚洲乱码在线观看| 久久久久无码精品亚洲日韩 | 亚洲AV无码一区二三区| 亚洲日韩在线第一页| 亚洲国产综合精品中文第一区| 亚洲制服丝袜中文字幕| 免费人成再在线观看网站 | 91亚洲精品自在在线观看| 国产亚洲综合精品一区二区三区| 日韩免费视频一区| 久久亚洲国产成人精品无码区| 亚洲综合色7777情网站777| 最新仑乱免费视频| 中文字幕亚洲一区二区三区| 一区在线免费观看| 成年私人影院免费视频网站| 亚洲日本天堂在线| 久久99热精品免费观看牛牛| 日本媚薬痉挛在线观看免费| 国产亚洲精品美女久久久久 | 美女视频黄的全免费视频| 日韩亚洲国产二区| 亚洲国产av一区二区三区丶| 午夜免费福利影院| 亚洲欧洲自拍拍偷综合| 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲美免无码中文字幕在线| 老司机精品免费视频| 在线永久免费观看黄网站| a级毛片免费观看网站| 亚洲AV无码精品无码麻豆| 日本一区二区三区在线视频观看免费| 精品国产人成亚洲区| 18禁黄网站禁片免费观看不卡| 亚洲av再在线观看| 亚洲一区免费观看| 亚洲国产成人久久精品软件 | 久久免费看黄a级毛片| 337P日本欧洲亚洲大胆精品| 久久久久免费看黄A片APP|