spring文档把方法替换归为一种注入形式,不过它和你之前见过的注入有很大的不同,借助方法注入,我们可以任意替换bean方法的实现,同时无需改变你正在修改的bean之源代码
这是一个简单bean的实现
package
ch5.MethodReplace;
public class ReplacementTarget ... {
public String fromMessage(String msg)...{
return msg;
}
public int fromMessage(int msg )...{
return 1;
}
}
public class ReplacementTarget ... {
public String fromMessage(String msg)...{
return msg;
}
public int fromMessage(int msg )...{
return 1;
}
}
借助spring的方法替换,你可以替换ReplacementTarget类的任意方法,本例替换了String参数的fromMessage
首先,创造一个实现MethodReplacer接口的实现
package
ch5.MethodReplace;
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class FromMessageReplacement implements MethodReplacer ... {
public Object reimplement(Object object, Method method, Object[] arg)
throws Throwable ...{
if(isFromMessageMethod(method))
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class FromMessageReplacement implements MethodReplacer ... {
public Object reimplement(Object object, Method method, Object[] arg)
throws Throwable ...{
if(isFromMessageMethod(method))