自己留存。
package com.daili;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class MJ {
public static void main(String[] args) {
Object object = Proxy.newProxyInstance(MJ.class.getClassLoader(), new Class[]{IAplusB.class}, new InvocationHandler() {//返回代理对象
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println(method.getName());
System.out.println("从数据库连接池获取连接");
System.out.println("解析xml文件");
System.out.println("解析方法");
System.out.println("获得的sql为xxx");
System.out.println("给参数赋值");
System.out.println("执行sql");
System.out.println("获得结果");
int invoke = 100;
return invoke;
}
});
if (object instanceof IAplusB){
IAplusB iAplusB = (IAplusB) object;
int add = iAplusB.add();
System.out.println(add);
}
}
}
interface IAplusB{
int add();
}