我們知道,通過使用Spring的AOP,可以非常容易的增強類中一些方法的功能,或者是替換掉一個方法。這里簡單介紹一種不使用Spring AOP,而是Spring IOC中內置的一種方法替換功能。即<bean>標簽中<replaced-method>元素的應用。
?
? 在Spring的配置文件中,在配置一個Bean的時候,可以使用該元素(標簽)用來設置方法替換。?<replaced-method>標簽的name屬性用來指定要替換的方法名稱,replacer屬性用來指定用來替換的Bean,這個Bean要求實現Spring的MethodReplacer接口。該標簽下面的arg-type元素用來指定0個或多個方法參數。下面我們看一個簡單的例子:
?public class LookupMethodBean {
?public void test()
?{
? System.out.println("原始方法!");
?}
?}
?
?MethodReplace.java
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class MethodReplace implements MethodReplacer {
?public Object reimplement(Object obj, Method method, Object[] args)
???throws Throwable {
??? System.out.println("方法已經被替換!");
??return null;
?}
}
Spring配置文件部分內容
?<bean name="replacer" class="springroad.deomo.chap4.MethodReplace">?
?</bean>?
?<bean name="testBean" class="springroad.deomo.chap4.LookupMethodBean">
? <replaced-method name="test" replacer="replacer"> </replaced-method>?
?</bean>?
這樣,testBean的test方法被替換,在調用testBean的test方法時,將執行replcacer這個Bean中的reimplement方法。?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1344361