<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 布衣郎 閱讀(1623) 評論(1)  編輯  收藏 所屬分類: aop 、spring

    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

    搜索

    •  

    積分與排名

    • 積分 - 357230
    • 排名 - 155

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲黄色免费观看| 亚洲一区无码精品色| 亚洲熟妇av一区| 免费精品无码AV片在线观看| 久久精品国产亚洲综合色| 在线成人精品国产区免费| 亚洲国产精品无码成人片久久| 抽搐一进一出gif免费视频| 亚洲精品无码专区在线在线播放 | 久久精品成人免费网站| 国产V亚洲V天堂无码久久久| 无码人妻精品中文字幕免费 | 成年女性特黄午夜视频免费看 | 美女被艹免费视频| 国产精品免费看香蕉| 一个人看的www免费在线视频| 自拍偷自拍亚洲精品情侣| 日本免费电影一区二区| 亚洲欧洲国产经精品香蕉网| AV无码免费永久在线观看| 亚洲色最新高清av网站| 免费吃奶摸下激烈视频| 最近免费中文字幕MV在线视频3| 亚洲国产精品一区| 国产情侣激情在线视频免费看| 亚洲天堂免费在线| 免费人成视频x8x8入口| 免费观看久久精彩视频| 亚洲中文字幕无码av永久| 亚洲AV无码之日韩精品| 久久一本岛在免费线观看2020| 国产AV旡码专区亚洲AV苍井空| 亚洲国产精品第一区二区三区| 免费人成在线观看网站| 亚洲乱理伦片在线观看中字| 亚洲区小说区图片区QVOD| 100000免费啪啪18免进| 一区在线免费观看| 亚洲人成激情在线播放| 国产成人精品久久亚洲高清不卡 | 免费国产成人午夜在线观看|