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

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

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

    胖熊熊

    得到多少又失去了什么

    spring 學習(1.3) 入門基礎- AOP 實例

     aop 例子學習,轉自javaeye

    首先建一個普通Java項目:com.longthsoft.learn.spring

    spring.jar, commons-logging.jar, cglib-nodep-...jar, aspectjweaver.jar, aspectjrt.jar 放到 Build Path 下.

    以止 lib 除了 spring 外, 其他的都可以在 spring 下載包的 lib 中找到

    下面編碼開始:

    讓我們先寫兩個簡單的類:

    代碼

    1 package om.longthsoft.learn.spring.models;   
    2       
    3 public class A {   
    4     public void sayHello() {   
    5             System.out.println("Hello, I'm a");   
    6         }   
    7     }  
    8 

    1 package com.longthsoft.learn.spring.models;   
    2 public class B {   
    3         public void sayHi() {   
    4             System.out.println("Hi, I'm b");   
    5         }   
    6     }   
    7 


    沒什么實際的東西, 只是小A和小B在打招呼

    接下來把他們交給Spring吧(有點殘忍)。

    代碼

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2 <beans xmlns="http://www.springframework.org/schema/beans"  
     3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     4         xmlns:aop="http://www.springframework.org/schema/aop"  
     5         xsi:schemaLocation="   
     6             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
     7             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">  
     8            
     9 <bean id="a" class="com.longthsoft.learn.spring.models.A" />  
    10 <bean id="b" class="com.longthsoft.learn.spring.models.B" />  
    11 </beans>  
    12 

    接下來寫個Boot

    代碼

     1     package com.longthsoft.learn.spring;   
     2       
     3     import org.springframework.context.ApplicationContext;   
     4     import org.springframework.context.support.ClassPathXmlApplicationContext;   
     5       
     6     import com.longthsoft.learn.spring.models.A;   
     7     import com.longthsoft.learn.spring.models.B;   
     8       
     9     public final class Boot {   
    10       
    11         public static void main(String[] args) {   
    12             ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");   
    13             A a = (A) ctx.getBean("a");   
    14             a.sayHello();   
    15                
    16             B b = (B) ctx.getBean("b");   
    17             b.sayHi();   
    18         }   
    19       
    20     }  
    21 

    嘿, 這里的運行結果不帖了, 大家腦子里閃過即可。

    圣誕到了, 小A小B 介紹完自己之后,也應該說句 "Merry Christmas"

    Spring 說, 既然你們交給我, 這等 routine 就不用再麻煩了, 直接一并處理掉。

    于是:

    代碼

     1     package com.longthsoft.learn.spring;   
     2       
     3     import org.aspectj.lang.annotation.AfterReturning;   
     4     import org.aspectj.lang.annotation.Aspect;   
     5     import org.aspectj.lang.annotation.Pointcut;   
     6       
     7     @Aspect  
     8     public class SimpleAspect {   
     9       
    10         @Pointcut("execution(* com.longthsoft.learn.spring.models.*.say*())")   
    11         public void simplePointcut() { }   
    12            
    13         @AfterReturning(pointcut="simplePointcut()")   
    14         public void simpleAdvice() {   
    15             System.out.println("Merry Christmas");   
    16         }   
    17     }   
    18 

    然后修改一下配置文件

    代碼

     1     <?xml version="1.0" encoding="UTF-8"?>  
     2     <beans xmlns="http://www.springframework.org/schema/beans"  
     3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     4         xmlns:aop="http://www.springframework.org/schema/aop"  
     5         xsi:schemaLocation="   
     6             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
     7             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">  
     8            
     9         <aop:aspectj-autoproxy />  
    10            
    11         <bean id="a" class="com.longthsoft.learn.spring.models.A" />  
    12         <bean id="b" class="com.longthsoft.learn.spring.models.B" />  
    13            
    14         <bean id="simpleAspect" class="com.longthsoft.learn.spring.SimpleAspect" />  
    15     </beans>  
    16 

    OK, 運行一下:

    Hello, I'm a
    Merry Christmas
    Hi, I'm b
    Merry Christmas

    posted on 2007-05-17 10:42 fatbear 閱讀(2321) 評論(1)  編輯  收藏 所屬分類: spring

    評論

    # re: spring 學習(1.3) 入門基礎- AOP 實例 2008-06-13 01:11 anna

    沒有提供applicationContext.xml的代碼  回復  更多評論   

    主站蜘蛛池模板: 亚洲AV无码资源在线观看| 久久久久久免费一区二区三区| 久久精品国产亚洲| 国产v片免费播放| 99久久99这里只有免费费精品| a在线视频免费观看在线视频三区| 色婷五月综激情亚洲综合| 成人精品视频99在线观看免费| 亚洲狠狠成人综合网| 亚洲视频2020| 99久久久国产精品免费无卡顿| 国产成人久久AV免费| 国产美女视频免费观看的网站 | 久久精品国产亚洲AV香蕉| 免费一级特黄特色大片在线 | 亚洲激情视频网站| 亚洲AV午夜福利精品一区二区| 亚洲一区二区三区在线视频| 免费看无码自慰一区二区| 无码人妻久久一区二区三区免费丨| 免费91最新地址永久入口| a级毛片免费网站| 一区二区三区AV高清免费波多| 亚洲国产美女精品久久久| 亚洲a级片在线观看| 四虎影视精品永久免费网站| 成全高清视频免费观看| 成人免费午夜无码视频| 成人免费AA片在线观看| 国内精品免费麻豆网站91麻豆| 99热这里只有精品6免费| 免费av一区二区三区| 久久久久久国产精品免费免费男同| 亚洲第一成人在线| 亚洲三级视频在线| 亚洲国产91在线| 亚洲一线产品二线产品| 亚洲日韩AV无码一区二区三区人| 亚洲色大成WWW亚洲女子| 亚洲欧美精品午睡沙发| 亚洲av无码一区二区三区天堂 |