文档章节

InvocationHandler 动态代理

younchen
 younchen
发布于 2015/10/16 17:27
字数 103
阅读 112
收藏 2

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

这货只能代理接口- -! 

public class TimeCaculateProxy implements InvocationHandler {

	private Class<?> obj;

	public static Object newInstance(Class<?> obj) {
		return java.lang.reflect.Proxy.newProxyInstance(obj.getClassLoader(),
				obj.getInterfaces(), new TimeCaculateProxy(obj));
	}

	private TimeCaculateProxy(Class<?> obj) {
		// Greet接口的實現:GreetImpl
		this.obj = obj;
	}

	public Object invoke(Object proxy, Method m, Object[] args)
			throws Throwable {
		Object result;
		try {
			// 自定義的處理
			System.out.println("--before method " + m.getName());
			// 調用GreetImpl中方法
			result = m.invoke(obj.newInstance(), args);
		} catch (InvocationTargetException e) {
			throw e.getTargetException();
		} catch (Exception e) {
			throw new RuntimeException("unexpected invocation exception: "
					+ e.getMessage());
		} finally {
			System.out.println("--after method " + m.getName());
		}
		return result;
	}
}


younchen
粉丝 8
博文 94
码字总数 29970
作品 0
延吉
程序员
私信 提问
加载中
请先登录后再评论。
动态代理(1)----JDK动态代理

在Java的Java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成JDK动态代理类或动态代理对象. Proxy提供用于创建动态代理类和代理对象的静态方法...

thundern
2015/06/18
10
0
Java动态代理语法

1、前言 写动态代理的代码涉及了一个非常重要的类 Proxy,通过Proxy的静态方法newProxyInstance才会动态创建代理对象。 2、newProxyInstance方法 public static Object newProxyInstance(Cl...

osc_9yc7q9oq
03/04
2
0
模拟jdk实现动态代理模式

1、先简单使用InvocationHandler,Proxy来实现动态代理,目的:为Tank添加一个代理TimeProxy,由TimeProxy为Tank添加额外的计时功能(在不改变Tank原有特性前提下,使用动态代理再合适不过)...

small达达
2016/01/27
75
0
设计模式之--代理模式(动态代理)

JDK 提供的动态代理的两个相关的类:InvocationHandler 和 Proxy 一:InvocationHandler   InvocationHandler 接口只提供了一个接口方法   public Object invoke(Object proxy, Method m...

开源中国_舆情监督员
2016/02/16
0
0
Java动态代理

1.动态代理概念   动态代理是程序在运行过程中自动创建一个代理对象代替被代理的对象去执行相应的操作。在Java的动态代理机制中,有两个重要的类或接口,一个是InvocationHandler接口,另一...

osc_sg6lgczj
2018/02/26
6
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringCloud 应用在 Kubernetes 上的最佳实践 — 开发篇

作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 前言 近年来,云原生、Kubernetes、微服务、SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 SpringCloud ...

阿里云技术博客
1分钟前
0
0
如何能够高效率学习Web前端技术

  Web前端开发作为前端技术的重要组成,一直占据着重要的地位,整个IT行业内有大量的前端开发从业者,随着移动互联网、大数据和人工智能的发展,目前前端的知识体系也在逐渐丰富。   要想...

SXXpenguin
1分钟前
0
0
Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

当大潮退去,才知道谁在裸泳。。关注公众号【BAT的乌托邦】开启专栏式学习,拒绝浅尝辄止。本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈、MyBatis、中间件等小而美的专栏...

osc_odp8kgup
1分钟前
0
0
HttpMessageConverter是这样转换数据的

Java Web 人员经常要设计 RESTful API(如何设计好的RESTful API),通过 json 数据进行交互。那么前端传入的 json 数据如何被解析成 Java 对象作为 API入参,API 返回结果又如何将 Java 对象...

tan日拱一兵
2019/05/27
0
0
angular浏览器兼容性问题解决方案

问题:edge浏览器下,固定列的边框消失 原因:ng-zorro-antd表格组件使用nzLeft和nzRight指令固定的表格列,这两个指令的实现css3中的标签: position: -webkit-sticky !important;positio...

osc_elbmybcg
2分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部