1,实现
DynamicProxyHandler implements InvocationHandler
2,覆盖方法
@Override<br> public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {<br> System.out.println("买房前准备");<br> Object result = method.invoke(object, args);<br> System.out.println("买房后装修");<br> return result;<br> }
3.通过代理实例化
BuyHouse buyHouse = new BuyHouseImpl();<br> BuyHouse proxyBuyHouse = (BuyHouse) Proxy.newProxyInstance(BuyHouse.class.getClassLoader(), new<br> Class[]{BuyHouse.class}, new DynamicProxyHandler(buyHouse));<br> proxyBuyHouse.buyHosue();<br><br>
ClassLoader loader:指定当前目标对象使用的类加载器,获取加载器的方法是固定的<br>Class<?>[] interfaces:指定目标对象实现的接口的类型,使用泛型方式确认类型<br>InvocationHandler:指定动态处理器,执行目标对象的方法时,会触发事件处理器的方法