<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Spring2.0 AOP使用心得(一)

    ??????正在做的項(xiàng)目中有一個(gè)類似積分的需求,比如用戶在討論區(qū)發(fā)帖后,需要給一定的積分這樣的需求。因?yàn)樾枨笫亲兓模瑫r(shí)為了使已經(jīng)寫(xiě)好的發(fā)帖代碼不被入侵,所以考慮使用Spring2.0 AOP來(lái)實(shí)現(xiàn)這個(gè)功能。
    ??????畢竟是第一次使用Spring2.0的AOP,按照Reference中的介紹,準(zhǔn)備使用Annotation來(lái)完成對(duì)AOP的配置。來(lái)看一下我做的步驟:
    ??????一、需要使用Spring2.0的jar包,現(xiàn)在已經(jīng)發(fā)布正式版的2.0了,可以從http://www.springframework.org/? 上下載到最新的2.0版本。加入到項(xiàng)目的classpath中去。
    ????? 二、需要在配置文件中啟用新的spring2.0的schema或者是dtd。???
    ??????1、在Spring的xml配置文件中加入新的schema:
    <beans?xmlns="http://www.springframework.org/schema/beans"
    ????xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
    ????xmlns:aop
    ="http://www.springframework.org/schema/aop"
    ????xmlns:tx
    ="http://www.springframework.org/schema/tx"
    ????xsi:schemaLocation
    ="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    ???????????http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
    ???????????http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"

    ????default-autowire
    ="byName"?default-lazy-init="true">
    ?????? 2、“如果使用Java 5的話,推薦使用Spring提供的@AspectJ切面支持,通過(guò)這種方式聲明Spring AOP中使用的切面。 "@AspectJ"使用了Java 5的注解,可以將切面聲明為普通的Java類。”——Spring reference
    ??????3、為了使用AOP的Annotation,在配置文件中加入<aop:aspectj-autoproxy />。
    ??????4、編寫(xiě)切面類:
    @Aspect
    public?class?ArticleRemoteAccountsService?{
    ?


    ????
    /**
    ?????*?在發(fā)帖成功之后,給用戶銀幣賬戶沖值
    ?????*?
    ?????*?
    @param?arg
    ?????*?
    @throws?AccountsException
    ?????*?
    @throws?InstantiationException
    ?????*?
    @throws?IllegalAccessException
    ?????
    */

    ????@After(
    "execution(*?com.company.ArticleManager.saveArticle(..))"
    ????????????
    +?"?&&?args(arg)")
    ????
    public?void?exSilByPost(Article?arg)?throws?AccountsException,
    ????????????InstantiationException,?IllegalAccessException?
    {

    ????????
    if?(arg.getLastUpdateTime()?==?null
    ????????????????
    &&?arg.getArticleByParentId()?==?null
    ????????????????
    &&?arg.getArticleByRootId()?==?null)?{
    ????????????
    //?TODO 主題帖

    ????????}
    ?else?if?(arg.getLastUpdateTime()?==?null
    ????????????????
    &&?(arg.getArticleByParentId()?!=?null?||?arg
    ????????????????????????.getArticleByRootId()?
    !=?null))?{
    ????????????
    //?TODO? 回帖

    ????????}


    ????}


    }

    這里需要注意的是使用Annotation的Poincut語(yǔ)法,
    execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
    這里就不累訴了。
    同時(shí)要注意的如何得到參數(shù)的問(wèn)題,寫(xiě)法參考如上。
    posted on 2006-10-20 11:02 旱頭憨腦 閱讀(974) 評(píng)論(0)  編輯  收藏 所屬分類: j2ee
    主站蜘蛛池模板: 免费一级毛片在线播放不收费| 国产亚洲中文日本不卡二区| 国产国产人免费视频成69大陆| 亚洲免费视频网站| 精品久久久久久亚洲综合网| 亚洲一级片在线播放| 亚洲AV无码一区二区三区系列| 亚洲国产av一区二区三区| 妞干网在线免费观看| 2021在线观看视频精品免费| 中文字幕无码毛片免费看| 在线观看亚洲网站| 亚洲精品蜜夜内射| 亚洲国产成人精品激情| 亚洲高清免费在线观看| 亚洲AV福利天堂一区二区三 | 久久青青成人亚洲精品| 亚洲精品无码99在线观看| 国产18禁黄网站免费观看| 国产成人免费高清激情视频| 国内精自视频品线六区免费| 精品一区二区三区免费毛片爱| 国精产品一区一区三区免费视频| 特级毛片在线大全免费播放| 黄页网址在线免费观看| 久久久久久亚洲av无码蜜芽| 亚洲人成无码网站在线观看 | 国产成人免费高清在线观看 | 亚洲精品无码国产片| 亚洲AV成人噜噜无码网站| 亚洲av成人综合网| 99999久久久久久亚洲| 亚洲人成网男女大片在线播放 | 91手机看片国产永久免费| **毛片免费观看久久精品| 1000部拍拍拍18勿入免费视频下载 | 色噜噜噜噜亚洲第一| 直接进入免费看黄的网站| 无套内射无矿码免费看黄| 国产免费内射又粗又爽密桃视频| 国产黄在线观看免费观看不卡|