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

          spring AspectJ 基本使用

          Posted on 2008-05-08 10:08 G_G 閱讀(4336) 評論(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 什么玩意亂糟糟的
          你寫的這是什么啊
          主站蜘蛛池模板: 舟曲县| 陇西县| 甘德县| 焦作市| 札达县| 黄陵县| 庆云县| 哈巴河县| 枝江市| 东乡县| 聊城市| 渝北区| 山丹县| 油尖旺区| 宁津县| 自治县| 花莲市| 浪卡子县| 和政县| 修武县| 沈丘县| 筠连县| 广汉市| 河源市| 古田县| 拜城县| 沐川县| 瑞安市| 高邑县| 靖边县| 淅川县| 绥江县| 新巴尔虎左旗| 芷江| 武川县| 厦门市| 兴业县| 寿阳县| 霞浦县| 西峡县| 登封市|