< value>com.denny_blue.springdemo.aop.BuyBook< /value>
< /property>
< property name="interceptorNames">
< list>
< value>myBeforeAdvice< /value>
< value>myAfterAdvice< /value>
< value>myAroundAdvice< /value>
< value>myThrowsAdvice< /value>
< /list>
< /property>
< property name="target">
< ref bean="myBuyBookTarget"/>
< /property>
< /bean>
< /beans>
我們先聲明所有的bean,通過
< bean id="myBuyBookTarget" class="com.denny_blue.springdemo.aop.MyBuyBook"/>
確定將要被增強的對象??目標對象(target),我們可以很容易地替換這個目標對象,只要它實現業務接口。代理的接口通過:
< property name="proxyInterfaces">
< value>com.denny_blue.springdemo.aop.BuyBook< /value>
< /property>
設定,然后是要用到一系列增強,注意,順序是很有影響的!你可以嘗試著改變順序看看結果:)
< property name="interceptorNames">
< list>
< value>myBeforeAdvice< /value>
< value>myAfterAdvice< /value>
< value>myAroundAdvice< /value>
< value>myThrowsAdvice< /value>
< /list>
< /property>
一切準備好了,我們來測試吧,GO GO GO
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.denny_blue.springdemo.aop.BuyBook;
public class TestAdvice {
public static void main(String args[]){
ApplicationContext ctx=new FileSystemXmlApplicationContext("/src/beans.xml");
//我的beans.xml放在項目下的src目錄,eclipse環境下,請自己調整
BuyBook buybook=(BuyBook)ctx.getBean("buyBook");
buybook.buyBook("jordan","< 深入淺出hibernate>");
// buybook.buyBook("dennis","< spring in action>"); //去掉注釋即可觀察異常增強
// buybook.buyBook("jordan","< 深入淺出hibernate>"); //去掉注釋即可觀察環繞增強
}
}
文章來源于領測軟件測試網 http://www.kjueaiud.com/