package com.dynamic;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.sql.Array;
import java.util.ArrayList;
import java.util.List;
public class TestHandler implements InvocationHandler {
private Object proxiedObj;
public TestHandler(Object obj){
proxiedObj = obj;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("1");
Object obj = method.invoke(proxiedObj, args);
System.out.println("2");
return obj;
}
public static void main(String args[]){
Hello hello = new Hello();
Class helloClass = hello.getClass();
IHello hello2 =(IHello)Proxy.newProxyInstance(helloClass.getClassLoader(),helloClass.getInterfaces(),new TestHandler(hello));
hello2.sayHello();//在代理对象上调用方法时这些方法的调用会转变成对调用处理器的invoke方法的调用
}
}
interface IHello{
void sayHello();
}
class Hello implements IHello{
public void sayHello(){
System.out.println("hello world!");
}
}
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
参数: loader
- 定义代理类的类加载器 interfaces
- 代理类要实现的接口列表 h
- 指派方法调用的调用处理程序
分享到:
相关推荐
这里提供了静态代理和动态代理的入门写法~一看即懂!
讲述JAVA的动态代理的原理,以及通过JAVA的动态代理来实现AOP。简洁,易懂,学习AOP的入门级文档
内容概要:动态代理学习笔记,适合刚接触maven的人能让你快速入门。 适用人群:大学生或者初接触动态代理的人 使用场景及目标:mybatis框架的前驱知识
深入地探讨反射和动态代理技术,其中例子详细明白。使初学者比较容易入门!
spring framework入门(6):java中的动态代理(jdk和cglib) 博客地址:https://blog.csdn.net/u010476739/article/details/76737460
一个静态代理和动态代理的小例子,开发时使用的工具是myeclipse,直接使用myeclipse工具导入即可,希望能 给大家理解这方面的入门知识带来些作用,同时也希望大家指出不足,我可以更加进行改进
01.Nginx快速入门 02.Nginx常用模块 03.Nginx提供静态资源WEB服务 04.Nginx提供代理服务 05.Nginx提供负载均衡 06.Nginx提供ProxyCache缓存服务 07.Nginx Rewrite跳转规则与实践 08.Nginx构建Https加密传输网站(基于...
SpringAOP入门和原理分析,动态代理
本套课程是Spring入门到精通教程,课程包括Spring IoC、Spring AOP(CGLib、JDK动态代理)、Spring整合MyBatis,Spring事务管理等内容。 通过本套课程的学习,你将掌握: 1、 IoC和依赖注入 2、 AOP的原理和实际...
java基础入门,GitBook本地命令行生成,等线字体版目录:java开发入门,java编程基础,面向对象,常见对象,多线程,集合框架,网络编程,IO流,反射机制,动态代理,注解,java新特性,内存管理。
② :mybaits的mapper(代理)接口(相当于dao接口)代理开发方法(掌握)第二种要掌握 mybatis配置文件SqlMapConfig.xml*** mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态...
3.3.3 动态谓词的筛选 3.4 select子句 3.4.1 输出查询结果 3.4.2 对查询结果进行投影 3.5 group子句 3.5.1 IGrouping泛型接口 3.5.2 分组查询 3.6 into子句 3.7 排序子句 3.7.1 OrderBy和...
SpringBoot下的Spring——DAY04——动态代理总结、AOP、自定义注解进行拦截、动态获取注解参数、通知方法 1.动态代理总结 1.1 JDK动态代理特点 1.2 CGlib动态代理 1.2.1 CGLib特点说明 1.3 动态代理的作用 2 Spring...
Mybatis的介绍、入门、使用jdbc操作数据库存在的问题、Mybatis的架构 、Mybatis的入门程序、Dao的开发方法(原始dao的开发方法、接口的动态代理方式) SqlMapConfig.xml文件说明
3.3.3 动态谓词的筛选 3.4 select子句 3.4.1 输出查询结果 3.4.2 对查询结果进行投影 3.5 group子句 3.5.1 IGrouping泛型接口 3.5.2 分组查询 3.6 into子句 3.7 排序子句 3.7.1 OrderBy和...
│ 北京动力节点SSH前言-007-代理模式-静态代理与动态代理.mp4 │ 北京动力节点SSH前言-008-代理模式-静态代理测试环境的搭建.mp4 │ 北京动力节点SSH前言-009-代理模式-解决快捷键冲突问题.mp4 │ 北京动力节点SSH...
3.3.3 动态谓词的筛选 3.4 select子句 3.4.1 输出查询结果 3.4.2 对查询结果进行投影 3.5 group子句 3.5.1 IGrouping泛型接口 3.5.2 分组查询 3.6 into子句 3.7 排序子句 3.7.1 OrderBy和...
程序代码
动态负荷平衡 对象地 小结 第12章 用VC++建立COM++组件 ADO编程 ADO与OLEDB VC++中的ADO VC++的ADO扩展 建立COM++应用程序 温习IObjectContext接口 用ATL建立COM++组件 编制基于角色的安全...