<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 布衣郎 閱讀(1624) 評論(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

    搜索

    •  

    積分與排名

    • 積分 - 357288
    • 排名 - 155

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产高清视频在线免费观看| 五月亭亭免费高清在线| 国产又大又长又粗又硬的免费视频| 亚洲成a人片在线网站| 少妇太爽了在线观看免费视频| 亚洲αv久久久噜噜噜噜噜| 国产午夜精品免费一区二区三区| 亚洲理论电影在线观看| 免费一级毛片在线播放视频| 内射干少妇亚洲69XXX| 4399好看日本在线电影免费| 2017亚洲男人天堂一| 日本牲交大片免费观看| 一区二区免费在线观看| 亚洲女同成av人片在线观看 | 久久久久亚洲爆乳少妇无| 一区二区三区在线观看免费| 亚洲午夜未满十八勿入网站2| 国产一区二区三区免费| 亚洲福利一区二区| 成人免费毛片观看| 一级视频免费观看| 亚洲日本在线观看| 国产高清在线精品免费软件| 久久久久免费视频| 亚洲中文字幕在线无码一区二区| 国产免费变态视频网址网站| 四虎国产精品免费永久在线| 亚洲人成网站在线观看播放青青| 国产成人免费片在线观看| 在线观看免费视频网站色| 亚洲一区中文字幕在线观看| 亚洲A∨精品一区二区三区| 久久99毛片免费观看不卡| 亚洲国产激情在线一区| 免费观看国产小粉嫩喷水| 精品免费视在线观看| 亚洲人成未满十八禁网站| 亚洲香蕉网久久综合影视| 国产免费av片在线看| 中文字幕高清免费不卡视频|