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

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

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

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    Spring中AOP的使用

    Posted on 2009-02-16 19:49 啥都寫點 閱讀(1233) 評論(0)  編輯  收藏 所屬分類: J2EE

    AOP:面向切面編程

    代理模式講解AOP技術

       操作接口

    代理實現 à真實實現

    因為此代理類只能為一個接口的對象進行代理 à靜態代理

    能不能有一種方法可以為所有的類進行代理 à動態代理

    Spring提供的一系列Advices接口

       |- BeforeAdvice

       |- AfterAdvice

    主要操作是在配置上:applicationContext.xml 文件上

    了解其作用:只關注于業務本身,而與其他業務無關

    à尚學堂代碼實例(spring-avi-152-014):

    public class SecurityHandler implements InvacationHandler {

       private Object targetObject;

       public Object newProxy(Object targetObject) {

       this.targetObject = targetObject;

       return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),

    targetObject.getClass.getInterfaces(),

    this);

    }

    Public Object invoke(Object proxy,Method method,Object[] args)throws Throwable {

       checkSecuity();

       Object ret = null;

     Try {

       ret = method.invoke(this.targetObject , args);

    }catch(Exception e) {

       e.printStackTrace();

       throw new java.lang.RuntimeException(e);

    }

     return ret;

    }

     private void checkSecurtiy() {

       System.out.println(“------------checkSecurity()-----------”);

    }

    }

    àSpring AOP的支持(采用Annotation的方式)

    1spring依賴庫

    * SPRING_HOME/dist/spring.jar

    * SPRING_HOME/lib/Jakarta-commons/commons-logging.jar

    * SPRING_HOME/lib/log4j-1.2.14.jar

    *SPRING_HOME/lib/aspectj/*.jar

    2 采用Aspect定義切面

    1、 Aspect定義PointcutAdvice

    2、 啟用AspectJAnnotation的支持并且將Aspect類和目標對象配置到LOC容器中

    注意:在這種方法定義中,切入點的方法是不是被執行的,它存在的目的僅僅是為了重用切入點即Advice中通過方法名引用這個切入點

    AOP

    l       Cross cutting concern

    l       Aspect

    l       Advice(橫切關注點的具體實現)

    l       Pointcut(圈定了一個范圍

    l       Joinpoint spring只支持方法級的Joinpoint

    l       Weave

    l       Target Object

    l       Proxy

    l       Introduction

    à實例(spring-avi-152-016):

    /**

    *定義PointcutPointcut的名稱就是allAddMethod,此方法不能有返回值和參數,只是一個標

    *

    *

    *Pointcut的內容是一個表達式,描述哪些對象的哪些方法(訂閱Joinpoint

    */

    @Aspect

    Public class SecurityHandle {

       @Pointcut(“execution(* add*(..)) || execution(*del*(..))”)    //第一個*表示返回值,第二個表示以add開頭的所//有方法, ..表示所有參數

    Private void allAddMethod() {} //不會被調用,只是一個標識

    /**

    *定義Advice,標識在哪個切入點何處織入此方法

    *

    */

    @Before(“allAddMethod()”)

    Private void checkSecurity() {

       System.out.println(“---------------------------checkSecurity()----------------------------”);

    }

    }

    需要在applicationContext中加入:<aop:aspectj-autoproxy/> 啟用對Annotation的支持

    spring-avi-152-017

    à靜態文件配置方式

     <aop:config>

         <aop:aspect id=”” ref=””>

               <aop:pointcut id=”allAddMethod” expression=”execution(* com.bjsxt.spring.UserManager.add*(..))”/>

              <aop:before method=”” pointcut-ref=””/>

         </aop:apect>

     </aop:config>

    àspringJoinPoint只針對方法

    public class SecurityHandler {

     private void args = joinPoint.getArgs();

       Object[] args = joinPoint.getArgs(); //取得方法的參數

     For (int i=0;i<args.length;i++) {

           System.out.println(args[i]);

    }

    System.out.println(joinPoint.getSignature().getName()); //得到方法簽名

    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 亚洲成在人线在线播放无码| 亚洲自偷精品视频自拍| 国产亚洲人成在线播放| 国产精品无码免费播放| 亚洲伊人久久精品| 免费一本色道久久一区| 亚洲小说图区综合在线| 亚洲国产成人片在线观看无码| 一级特黄a免费大片| 97视频免费观看2区| 亚洲精品视频在线观看免费| 国产h肉在线视频免费观看| 91亚洲自偷手机在线观看| 黄+色+性+人免费| 亚洲91精品麻豆国产系列在线| 日韩精品成人无码专区免费| 亚洲狠狠婷婷综合久久蜜芽| 国产一级淫片免费播放| 男女一边桶一边摸一边脱视频免费| 国产亚洲精久久久久久无码77777| a毛片免费观看完整| 亚洲美女色在线欧洲美女| 毛片a级三毛片免费播放| 91亚洲国产在人线播放午夜| 97碰公开在线观看免费视频| 亚洲国产一区二区三区在线观看| 亚洲国产V高清在线观看| APP在线免费观看视频| 亚洲午夜精品第一区二区8050| 中出五十路免费视频| 亚洲日产2021三区| 国产一级理论免费版| 日本亚洲欧洲免费天堂午夜看片女人员 | 97视频免费在线| 美女视频黄a视频全免费网站一区| 亚洲精品无码高潮喷水在线| 0588影视手机免费看片| 香港特级三A毛片免费观看| 亚洲av永久无码精品网站| 在线播放免费播放av片| 精品亚洲永久免费精品|