JDK自带动态代理代码逻辑实现
实现一个计算器工具,定义IMathCalcultor接口,只开发求和,求差两个功能接口。需求:在每次使用方法前后 都要输出日志内容。这里利用JDK动态代理方式之一 -- 通过实现invocationHandle接口来实现这个需求,闲话不多说直接上代码。 package com.travelsky.falcon.controller.testPackage; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; public class MyProxy { public static void main(String[] args){ //创建被代理的对象,注意被代理的对象是不可变对象 所以用final修饰 final IMathCalcultor math = new MathCalcultorImpl(); //创建一个代理对象(入参说明:1.类加载器要与被代理的对象类加载器一致;2.被代理对象的接口;3.实现InvocationHandler接口的invoke方法,通常写内部类来实现) Object newProxyInstance = Proxy