Loading

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>
posted @ 2024-03-13 17:39  zgcy123456  阅读(22)  评论(0)    收藏  举报