java动态代理
来源:互联网 发布:java官网下载jdk7 编辑:程序博客网 时间:2024/06/07 00:55
package com.henry.reflection.proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;interface Dog{void info();void run();}class GunDog implements Dog{@Overridepublic void info() {System.out.println("I'm a GunDog.");}@Overridepublic void run() {System.out.println("I'm running fastly.");}}class DogUtil{static void atBefore(){System.out.println("before...");}static void atAfter(){System.out.println("after...");}}class DogInvocationHandler implements InvocationHandler{//需要代理的目标对象private Object target;//设置代理对象public Object getTarget() {return target;}public void setTarget(Object target) {this.target = target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {//在代理对象的执行方法前插入代码DogUtil.atBefore();//调用代理对象的方法Object result=method.invoke(target, args);//在代理对象的执行方法后插入代码DogUtil.atAfter();return result;}}class ProxyFactory{/** * 生成动态代理的对象 * @param target 被代理的对象 * @return 返回动态代理对象 */public static Object getProxy(Object target){DogInvocationHandler handler=new DogInvocationHandler();handler.setTarget(target);//返回动态代理的对象return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), handler);}}public class ProxyTest3 {public static void main(String[] args) {Dog dog=(Dog) ProxyFactory.getProxy(new GunDog());dog.info();dog.run();}}
阅读全文
0 0
- Java 代理,动态代理
- [Java] Java 动态代理
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- Java 代理之 动态代理
- Java 代理与动态代理
- java静态代理,动态代理
- 代理模式&java动态代理
- Java代理与动态代理
- Java静态代理动态代理
- JAVA代理模式--动态代理
- java 代理和动态代理
- JAVA动态代理 代理模式
- Java动态代理--jdk代理
- Java动态代理--cglib代理
- Java 代理与动态代理
- java代理模式-动态代理
- Spring Cloud是什么?
- 使用Nutch爬取暗网(.onion)
- USBWebserver 快速搭建本地PHP环境
- mule-standalone 指定运行jdk版本
- android多分辨率适配
- java动态代理
- Coursera机器学习第二周学习笔记——Linear Regression with Multiple Variables
- Java_观察者模式(Observable和Observer)
- Android开发之深入理解Android 7.0系统权限更改相关文档
- 闭包是什么,如何使用?
- Gensim 安装
- PAT1010 Radix
- HTTP中POST GET 本质区别详解
- hdu 3746 Cyclic Nacklace