前面這是講了許多的概念,下面以乙個例子來說明:
乙個很好理解的aop 例子,也就是日誌服務。
先從aop第一種方式來實現,也就是xml配置方式
先建立基本的日誌類:
public class logger
}這裡只是簡單的乙個方法,當然實際情況可能不同。
由於xml配置需要乙個方面的實現bean
所以建立乙個簡單的bean :
public class logbean
}這裡採取簡單的around advice,其他型別的advice 基本上都差不多
當然有了這兩個核心的日誌類,需要乙個測試類,用於測試。
public class testbean
public void method2()
}這就是需要測試的類了,需要記錄日誌的方法只有兩個,這裡用system.out.println,只是想顯示方法的呼叫順序。
然後關鍵的在於xml的配置了
現在寫乙個測試類:
public class logxmltest extends roottest
public void testlog()
}public abstract class roottest extends testcase
列印的訊息如下:
2006-09-17 11:08:28,203 info [org.spring.test.aop.log.logger] - before invoke method:method1
in method1
2006-09-17 11:08:28,203 info [org.spring.test.aop.log.logger] - after invoke method:method1
2006-09-17 11:08:28,218 info [org.spring.test.aop.log.logger] - before invoke method:method2
in method2
2006-09-17 11:08:28,218 info [org.spring.test.aop.log.logger] - after invoke method:method2
第二種實現方式,採用注釋方式:
logger 類不變
建立乙個logaspect類
@aspect
public class logaspect
}配置檔案就簡單多了
測試類:
跟上面的差不多
把xml檔案換掉就行
列印的方式差不多
個人還是比較喜歡第二種實現。
spring aop 2 0 程式設計
在spring2.0中,aop發生了很大的變化 主要分為兩大方面 1.支援簡單的aop xml配置 2.支援 aspectj的注釋 先來看一看第一種情況 申明乙個aspect,在xml中的申明如下 申明pointcut 申明advice before advice pointcut ref data...
spring aop 2 0 程式設計
在spring2.0中,aop發生了很大的變化 主要分為兩大方面 1.支援簡單的aop xml配置 2.支援 aspectj的注釋 先來看一看第一種情況 申明乙個aspect,在xml中的申明如下 申明pointcut 申明advice before advice pointcut ref data...
Spring AOP 程式設計
package com.xcl.common import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.after import org.aspectj.lang.annotation.afterre...