久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Spring AOP示例(注解方式)

     旭龍 2011-12-06

    Spring AOP示例

    一.使用Annotation
     1.定義切面
    package com.yyj.aspect;

    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Pointcut;
    import org.springframework.stereotype.Component;

    @Component
    @Aspect
    public class TestAspect {
     
     @Pointcut("execution(* com.yyj.service.*.*(..))")
     public void testPointCut(){
     }
    }
    注: @Aspect說明該類是個切面,@Component將該bean自動注入到springIOC容器,
     默認id為類名第一個字母轉小寫;
     @Pointcut("execution(* com.yyj.service.*.*(..))")定義一個切入點,
     后面的表達式說明對com.yyj.service包及子包下的所有方法進行攔截,植入其它操作,
     其它操作由對應的Advise定義。
     2.定義advise
    package com.yyj.aspect;

    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.springframework.stereotype.Component;

    @Aspect
    @Component
    public class TestAdvise {
     
     @Before("com.yyj.aspect.TestAspect.testPointCut()")
     private void testBefore(){
      System.out.println("begin-----in-----");
      System.out.println("before test...");
      System.out.println("end  -----in-----");
     }
    }
    注: @Before("com.yyj.aspect.TestAspect.testPointCut()"),定義了testPointCut這個切入點
     要做的操作是在執行被切入方法之前先執行testBefore方法。
     3.配置
     <?xml version="1.0" encoding="UTF-8"?>
     <beans xmlns="http://www./schema/beans"
     xmlns:xsi="http://www./2001/XMLSchema-instance"
     xmlns:aop="http://www./schema/aop"
     xmlns:context="http://www./schema/context"
     xmlns:jee="http://www./schema/jee"
     xmlns:lang="http://www./schema/lang"
     xmlns:tx="http://www./schema/tx"
     xmlns:util="http://www./schema/util"
     xsi:schemaLocation="http://www./schema/beanshttp://www./schema/beans/spring-beans-3.0.xsd
      http://www./schema/aophttp://www./schema/aop/spring-aop-3.0.xsd
      http://www./schema/contexthttp://www./schema/context/spring-context-3.0.xsd
      http://www./schema/jeehttp://www./schema/jee/spring-jee-3.0.xsd
      http://www./schema/langhttp://www./schema/lang/spring-lang-3.0.xsd
      http://www./schema/txhttp://www./schema/tx/spring-tx-3.0.xsd
      http://www./schema/utilhttp://www./schema/util/spring-util-3.0.xsd">
     
     <aop:aspectj-autoproxy/>
     <!-- 啟動Spring注解自動注入Bean -->
     <context:component-scan base-package="com.yyj" />
     </beans>
     
     4.定義測試類
    package com.yyj.service;
    import org.springframework.stereotype.Component;

    @Component
    public class Testa{
     public void test(){
      System.out.println("test...");
     }
    }

    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import com.yyj.service.Testa;

    public class MainTest {

     private static ClassPathXmlApplicationContext springCtx;

     synchronized static void startup() {
      if (springCtx == null) {
       System.out.println("start up...");
       springCtx = new ClassPathXmlApplicationContext();
       springCtx
         .setConfigLocations(new String[] { "applicationContext.xml" });
       springCtx.refresh();
       Testa ta = (Testa)springCtx.getBean("testa");
       ta.test();
       System.out.println("start up...ok");
      }
     }

     public static void main(String[] args) {
      new MainTest().startup();
     }
    }

    二.不使用Annotation注解也可以如下類似配置
     <aop:aspectj-autoproxy/>
      <!-- 啟動Spring注解 -->
     <context:component-scan base-package="com.yyj" />
     <!--<tx:annotation-driven proxy-target-class="true" />  -->
     <aop:config>
      <aop:aspect ref="myPoint">
       <aop:pointcut expression="execution(* com.yyj.service.FooService.getFoo(..))" id="pointCut"/>
       <aop:before pointcut-ref="pointCut" method="myAroundMethod"/>
      </aop:aspect>
     </aop:config>
    注:PointCut和Advise可以在一個類中,也可以分開定義

    工程用到jar

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲av无码之国产精品网址蜜芽 | 成人无码潮喷在线观看| 好大好深好猛好爽视频| 天天躁日日躁狠狠躁欧美老妇| 中文字幕国产原创国产| 国产成人不卡无码免费视频| 国产精品久久久久AV| 无码免费大香伊蕉在人线国产| 亚洲国产精品自产在线播放| 亚洲成人av免费一区| 伊人久久大香线蕉AV五月天宝贝| 亚洲高清日韩专区精品| 丰满人妻AV无码一区二区三区 | 久久天天躁狠狠躁夜夜婷| 久久精品国产亚洲一区二区| 亚洲一二三区精品美妇| 国产亚洲精品第一综合另类灬| 依依成人精品视频在线观看| 国内自拍视频一区二区三区 | 午夜福利看片在线观看| 52熟女露脸国语对白视频| 国产午夜福利视频在线| 亚洲精品无码永久在线观看你懂的 | 中文字幕日韩人妻一区| 人妻在线无码一区二区三区| 亚洲国产午夜福利精品| 亚洲国产精品久久一线不卡| 国产成熟妇女性视频电影| 成人国产精品一区二区网站公司| 少妇人妻偷人精品视蜜桃| 日本一道一区二区视频| 亚洲A成人片在线播放| 老色鬼永久精品网站| 亚洲国产精品久久久天堂麻豆宅男| 无码AV人片在线观看天堂| 国产良妇出轨视频在线观看| 精品国产成人国产在线观看| 亚洲尤码不卡av麻豆| 又大又粗欧美成人网站| 无码国模国产在线观看免费| 久久蜜臀av一区三区|