posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          spring AspectJ 基本使用

          Posted on 2008-05-08 10:08 G_G 閱讀(4339) 評論(1)  編輯  收藏 所屬分類: SpringAOP
          我的aop 基礎
          spring 實際使用 (這就使用一個例子說明)

          測試類以及結果:
          package?unit;

          import?org.springframework.context.ApplicationContext;
          import?org.springframework.context.support.ClassPathXmlApplicationContext;

          import?bean.HelloService;

          public?class?Main?{
          ????
          public?static?void?main(String[]?args)?{
          ???????????ApplicationContext?context?
          =?new?ClassPathXmlApplicationContext(??????
          ???????????????????
          "beans.xml");????
          ???????????HelloService?service?
          =?(HelloService)?context.getBean("helloService");????
          ???????????service.annotationAop();
          ???????????
          ???????????System.out.println();
          ???????????
          ???????????service.xmlAop();
          ???????????
          ????}
          }
          結果:
          ?annotationAop//正常方法運行
          aop--AspectJ!?//
          annotation攔截

          ?xmlAop?
          //正常方法運行
          ?aop--XmlAop! //配置攔截



          use jar
          • --aspectjrt.jar
          • --aspectjweaver.jar
          • --acglib-nodep-2.1_3.jar
          • --commons-logging.jar
          • --spring.jar
          • --spring-aspects.jar
          XML配置
          <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"
          ???????????????xsi:schemaLocation
          =????????
          ???????????????????"http://www.springframework.org/schema/beans?????????
          ???????????????????http://www.springframework.org/schema/beans/spring-beans.xsd?????????
          ???????????????????http://www.springframework.org/schema/aop?????????
          ???????????????????http://www.springframework.org/schema/aop/spring-aop.xsd"
          >
          ????????
          ????????
          <!--?測試使用類?分別由?方法?annotationAop/xmlAop?-->
          ????????
          <bean?id="helloService"???????
          ????????????class
          ="bean.HelloService"/>????
          ????????
          ????????????
          ????????
          <!--?annotation?aop?攔截?使用@Aspect?
          ????????????@Pointcut("execution(*?annotationAop(..))")??
          ????????????@AfterReturning("mainMethod()")??
          ????????
          -->
          ????????
          <bean?id="xmlAop"?
          ????????????class
          ="aop.AnnotationAspectJ"/>
          ????????
          <aop:aspectj-autoproxy/>????
          ????????
          ????????
          ????????
          <!--?xml?aop??配置文件攔截?-->
          ????????
          <bean?id="XmlAspectJ"???????
          ????????????class
          ="aop.XmlAspectJ"/>
          ????????
          <aop:config>?????
          ?????????????
          <aop:aspect?ref="XmlAspectJ">
          ?????????????????
          <aop:pointcut?id="mainMethod"?expression="execution(*?xmlAop(..))"/>????
          ?????????????????
          <aop:after-returning?pointcut-ref="mainMethod"?method="goXmlAop"/>?????
          ?????????????
          </aop:aspect>???
          ?????????
          </aop:config>????
          ????????????
          </beans>

          HelloService.java
          package?bean;

          public?class?HelloService?{??
          ????
          public?void?annotationAop()?{????
          ????????System.out.println(
          "?annotationAop?");
          ????}
          ????
          ????
          public?void?xmlAop(){
          ????????System.out.println(
          "?xmlAop?");
          ????}
          }

          AnnotationAspectJ.java
          package?aop;

          import?org.aspectj.lang.annotation.AfterReturning;
          import?org.aspectj.lang.annotation.Aspect;
          import?org.aspectj.lang.annotation.Pointcut;

          @Aspect
          public?class?AnnotationAspectJ?{??
          ????@Pointcut(
          "execution(*?annotationAop(..))")??
          ????
          public?void?mainMethod()?{}??
          ????
          ????@AfterReturning(
          "mainMethod()")??
          ????
          public?void?sayHello()?{????
          ????????System.out.println(
          "aop--AspectJ!");??
          ????}
          }

          XmlAspectJ.java
          package?aop;

          public?class?XmlAspectJ?{
          ????
          public?void?goXmlAop(){
          ????????System.out.println(
          "?aop--XmlAop!?");
          ????}
          }














          評論

          # re: spring AspectJ 基本使用  回復  更多評論   

          2009-12-13 14:12 by 什么玩意亂糟糟的
          你寫的這是什么啊
          主站蜘蛛池模板: 册亨县| 嘉定区| 英吉沙县| 新昌县| 柘城县| 平利县| 新蔡县| 潮州市| 锡林浩特市| 岫岩| 北宁市| 若尔盖县| 六盘水市| 瑞丽市| 昭苏县| 绿春县| 上林县| 平利县| 光山县| 华蓥市| 岳阳县| 分宜县| 宝清县| 迁西县| 来宾市| 龙山县| 清苑县| 松潘县| 山西省| 巍山| 金寨县| 长岛县| 金昌市| 永丰县| 牟定县| 普洱| 阳原县| 平阳县| 九寨沟县| 于田县| 龙胜|