<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片软件| 国产中文字幕免费观看| 国产在线国偷精品免费看| 亚洲成人福利在线| 亚洲国产aⅴ综合网| 亚洲视频在线观看免费| www亚洲精品久久久乳| 国产亚洲蜜芽精品久久| 久久精品国产亚洲麻豆| 在线免费观看污网站| 久久国产精品免费网站| 亚洲av成人中文无码专区| 亚洲精品狼友在线播放| 日本黄色免费观看| 久久久久久毛片免费播放| 精品女同一区二区三区免费播放| 亚洲午夜精品久久久久久人妖| 国产a级特黄的片子视频免费| 97av免费视频| 一级毛片大全免费播放下载| 亚洲精品一级无码鲁丝片| 免费精品国产自产拍在| 在线观看免费无码专区| 麻豆安全免费网址入口| 亚洲国产精品专区| 最近2019中文字幕mv免费看| 大地影院MV在线观看视频免费| 亚洲最大无码中文字幕| 蜜芽亚洲av无码精品色午夜| 亚洲午夜成人精品电影在线观看| 搡女人免费视频大全| 最新黄色免费网站| 国产成人免费AV在线播放 | 久久乐国产精品亚洲综合| 在线观看免费宅男视频| 亚洲免费网站在线观看| 国产无遮挡无码视频免费软件| 午夜不卡AV免费|