功能:就是替換掉 bean 中的一些方法窟扑。
public class MyValueCalculator {
public String computeValue(String input) {
// some real code...
}
}
方法覆寫盈滴,注意要實現(xiàn) MethodReplacer 接口:
public class ReplacementComputeValue implements
org.springframework.beans.factory.support.MethodReplacer {
public Object reimplement(Object o, Method m, Object[] args) throws Throwable {
// get the input value, work with it, and return a computed result
String input = (String) args[0];
...
return ...;
}
}
配置也很簡單:
<bean id="myValueCalculator" class="x.y.z.MyValueCalculator">
<!-- 定義 computeValue 這個方法要被替換掉 -->
<replaced-method name="computeValue" replacer="replacementComputeValue">
<arg-type>String</arg-type>
</replaced-method>
</bean>
<bean id="replacementComputeValue" class="a.b.c.ReplacementComputeValue"/>
arg-type 明顯不是必須的,除非存在方法重載河绽,這樣必須通過參數(shù)類型列表來判斷這里要覆蓋哪個方法湘今。