package com.denny_blue.springdemo.aop;
public class BuyBookException extends RuntimeException {
public BuyBookException(String msg){
super(msg);
System.out.println(msg);
}
}
OK,接下來就是各類增強了,前增強,在業務方法buyBook之前調用,顯示歡迎信息:
package com.denny_blue.springdemo.aop;
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
public class MyBeforeAdvice implements MethodBeforeAdvice {
public void before(Method arg0, Object[] arg1, Object target)
throws Throwable {
String customer=(String)arg1[0]; //第2個參數組就是被增強的方法傳入的參數,本例中即customer,book
System.out.println("歡迎光臨!"+customer+"!"); //顯示歡迎信息!,在buyBook方法前調用
}
}
然后是后增強,當顧客已經買了書之后,顯示歡送信息:
package com.denny_blue.springdemo.aop;
import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;
public class MyAfterAdvice implements AfterReturningAdvice {
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
Object arg3) throws Throwable {
String customer=(String)arg2[0]; //同前增強一樣,參數組3為傳入參數,具體見spring doc
System.out.println("歡迎下次再來!"+customer+"!"); //顯示歡送信息!
}
}
OK,有了上面兩個advice我們就能提供給顧客很好的服務態度了,等等?我們還有規則沒實現,不是說一名顧客只能買一本書嗎?OK,我們用環繞增強來解決,在環繞增強中保存一個HashSet,判斷顧客是否來過,來過就拋出一個異常,沒來過再放入此Set中:
文章來源于領測軟件測試網 http://www.kjueaiud.com/