11 replace-method标签使用
code 如下,
创建
package com.gientech.methodOverrides.replace;
public class OriginalDog {
public void sayHello(){
System.out.println("Hello, I am a black dog ....");
}
public void sayHello(String name){
System.out.println("Hello, I am a black dog, my name is " + name);
}
}
package com.gientech.methodOverrides.replace;
import org.springframework.beans.factory.support.MethodReplacer;
import java.lang.reflect.Method;
import java.util.Arrays;
public class ReplaceDog implements MethodReplacer {
@Override
public Object reimplement(Object obj, Method method, Object[] args) throws Throwable {
System.out.println("Hello, I am a white dog....");
Arrays.stream(args).forEach(str -> System.out.println("parameter is " + str));
return obj;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dogReplaceMethod" class="com.gientech.methodOverrides.replace.ReplaceDog"></bean>
<bean id="originalDogReplaceMethod" class="com.gientech.methodOverrides.replace.OriginalDog">
<replaced-method name="sayHello" replacer="dogReplaceMethod">
<arg-type match="java.lang.String"></arg-type>
</replaced-method>
</bean>
</beans>