Java 方法更换弹簧不工作
我正在尝试用一个新方法替换Bank类中的calcInt方法 在一个新类NewCalcInt.java中。但我不能这么做。请帮我转到Java 方法更换弹簧不工作,java,xml,spring,Java,Xml,Spring,我正在尝试用一个新方法替换Bank类中的calcInt方法 在一个新类NewCalcInt.java中。但我不能这么做。请帮我转到 解决这个问题。我已经添加了所有JAR以及cglib-nodep-2.1.3 JAR 这是下面的代码 Bank.java package beans; public class Bank { public void deposit() { System.out.println("Deposit Method in Bank");
解决这个问题。我已经添加了所有JAR以及cglib-nodep-2.1.3 JAR 这是下面的代码 Bank.java
package beans;
public class Bank {
public void deposit() {
System.out.println("Deposit Method in Bank");
}
public void withdraw() {
System.out.println("Withdraw Method in Bank");
}
public void calcInt() {
System.out.println("CalcInt Method in Bank");
}
}
下面的程序是NewCalcInt.java
NewCalcInt.java
package beans;
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class NewCalcInt implements MethodReplacer {
public Object reimplement(Object o, Method m, Object[] arg2) throws
Throwable {
System.out.println("NewCalcInt class new CalInt imp");
return o;
}
}
下面的代码是spring.xml
spring.xml
<?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-3.0.xsd" >
<bean id="b" class="beans.Bank">
<replaced-method name="calcInt" replacer="nc"></replaced-method>
</bean>
<bean id="nc" class="beans.NewCalcInt"></bean>
</beans>
我已经添加了jar似乎没有问题,你能试着先放置
吗?@Mavlarn我试过了,但运行时间没有变化。我将向您显示错误警告:在上下文初始化过程中遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“b”的bean时出错在类路径资源[spring.xml]中定义:bean实例化失败;嵌套异常为java.lang.ExceptionInInitializeError线程“main”org.springframework.beans.factory.BeanCreationException中的异常:创建类路径资源[spring.xml]中定义的名为“b”的bean时出错:bean实例化失败;原因:java.lang.ExceptionInInitializeError原因:java.lang.IllegalStateException:无法加载缓存项,原因:java.lang.CompatibleClassChangeError:class org.springframework.cglib.core.DebuggingClassWriter的接口org.springframework.asm.ClassVisitor为超级class@kuhajeyan我移除了一些我包括在内的罐子,现在它可以正常工作了。
package beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ClientApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Bank b = (Bank) context.getBean("b");
b.deposit();
b.withdraw();
b.deposit();
}
}