java 动态代理的使用
程序员文章站
2022-04-21 21:44:54
...
1.接口Human.java
public interface Human { void say(); }
2.Human的实现类 Person
public class Person implements Human { @Override public void say() { System.out.println("haha"); } }
3.处理类
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class Hander implements InvocationHandler { private Object obj; public Hander(Object obj) { this.obj = obj; } public Hander() { } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("before"); method.invoke(obj, args); System.out.println("after"); return null; } }
4. 使用
import java.lang.reflect.Proxy; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Human i = (Human) Proxy.newProxyInstance(Thread.currentThread() .getContextClassLoader(), Person.class.getInterfaces(), new Hander(new Person())); i.say(); } }
5. 输出结果
before haha after
推荐阅读
-
ws-http.java 给女生使用的简单无依赖的HTTP Client库 javahttp
-
关于富文本编辑器—UEditor(java版)的使用,以及如何将UEditor的文件/图片上传路径改成绝对路径
-
ws-http.java 给女生使用的简单无依赖的HTTP Client库 javahttp
-
Java语言基础之List集合以及Set集合的使用
-
java的线程、创建线程的 3 种方式、静态代理模式、Lambda表达式简化线程
-
如何使用动态共享对象的模式来安装PHP_PHP
-
动态代理 博客分类: java笔记 ProxyInvocationHandler动态代理BeanFactoryProxyFactoryBean
-
PHP使用GIFEncoder类生成的GIF动态图片验证码_php实例
-
java学习笔记(中级篇)—细说mybatis的使用方式
-
动态修改JAR包里的Class? 动态修改java类