一,JDK动态代理原理:
1.步骤:
(1):获取被代理对象的引用,并且获取它的所有接口,反射获取
(2):JDK动态代理类重新生成一个新的类,同时新的类要实现被代理类的所有接口
(3):动态生成Java代码,新加的业务逻辑方法由一定的逻辑代码调用(在代码中体现)
(4):编译新生成的Java代码.class文件
(5):重新加载到JVM中运行
以上过程叫字节码重组。JDK有一个规范,在ClassPath下只要是以$开头的.class文件一般都是生成的。
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* test.JDKProxy
* Description:
* date:3/28/2022 4:32 PM
*
* @author:chenweipeng
* @version:1.0
* @since JDK 1.8
*/
interface IPerson{
void findLove(String name);
}
class ZhaoLiu implements IPerson{
@Override
public void findLove(String name) {
System.out.print("找到了"+name);
System.out.println("符合赵六的标准");