文档章节

JDK Dynamic Proxy_JDK动态代理

秋风醉了
 秋风醉了
发布于 2014/11/05 14:20
字数 196
阅读 46
收藏 0
点赞 0
评论 0

JDK Dynamic Proxy_JDK动态代理

更详细的在http://my.oschina.net/xinxingegeya/blog/297410

Dynamic Proxy :

In this , proxies are created dynamically through reflection(反射). This functionality is added from JDK 1.3 . Dynamic proxy form the basic building block of Spring AOP.

一个简单的示例:

下面贴出代码来,也没什么好说的

Basicfunc.java

package com.lyx.other;

public interface Basicfunc {
	public void method1();
}

Example1.java

package com.lyx.other;

public class Example1 implements Basicfunc {
	public void method1() {
		System.out.println("executing method 1");
	}
}

MyInvocationHandler.java

package com.lyx.other;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class MyInvocationHandler implements InvocationHandler {

	private Object target;

	public MyInvocationHandler(Object target) {
		this.target = target;
	}

	public Object getTarget() {
		return this.target;
	}

	public void setTarget(Object target) {
		this.target = target;
	}

	public Object invoke(Object proxy, Method method, Object[] params)
			throws Throwable {
		long a = System.currentTimeMillis();
		Object result = method.invoke(this.target, params);
		System.out.println("total time taken  "
				+ (System.currentTimeMillis() - a));
		return result;
	}

}

MainClass.java

package com.lyx.other;

import java.lang.reflect.Proxy;

public class MainClass {
	public static void main(String[] args) {
		Example1 ex = new Example1();
		Basicfunc proxied = (Basicfunc) Proxy.newProxyInstance(
				MainClass.class.getClassLoader(),
				ex.getClass().getInterfaces(), new MyInvocationHandler(ex));
		proxied.method1();
	}
}

======END======


© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 228
博文 577
码字总数 407134
作品 0
朝阳
程序员
Spring AOP嵌套调用的问题 (同一类方法内调用切面切不到)

在开发基于 Spring 的应用的过程中碰到了一个让我困惑了好久的问题,我在一个 Service 类doSomething1() 方法中通过this.doSomething2(); 语句调用了同一个类中的 doSomething2 方法,运行时...

LittlerBeans
2016/04/22
602
0
java的动态代理原理

之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话...

ke_ry
2017/07/19
0
0
代理模式初探

代码地址:https://git.oschina.net/wizards/jdk1.8Test.git 简介 代理,proxy;生活中例子很常见,比如房产中介,租客和房主实际上不需要见面,只需要中介就能完成租房活动.这样租客和房主都能节省...

流光韶逝
2016/11/10
5
0
Spring Proxying Mechanisms_Spring代理机制

Spring Proxying Mechanisms_Spring代理机制 来自:/current/spring-framework-reference4.1.1 Spring AOP uses either JDK dynamic proxies or CGLIB to create the proxy for a given targ......

秋风醉了
2014/11/05
0
0
java实现动态代理的方式有几种?

AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函...

丑的想整容
01/13
0
0
动态代理-JDK动态代理的内部实现

0.一个简单的JDK动态代理的例子 创建代理类接口 创建接口的实现 实现一个InvocationHandler 使用动态代理执行被代理类的方法 查看输出结果 1.JDK动态代理的源码实现 我们从上面的代码可以看出...

似是而非Sage
2016/08/23
31
0
Java动态代理的两种实现方法

AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函...

Zhang_Java
2016/11/17
178
0
源码解析--JDK动态代理

动态代理的两种方式JDK动态代理和cglib动态代理在上一篇中动态代理jdk和cglib的区别已经通过实例做了比较,那么动态代理的使用我们已经掌握了,但是知道了使用方法还远远不够,要想更深入了解...

激情的狼王丶21
2017/12/20
0
0
JDK动态代理源码学习

继上一篇博客设计模式之代理模式学习之后http://blog.csdn.net/u014427391/article/details/75115928,本博客介绍JDK动态代理的实现原理,学习一下JDK动态代理的源码。 Proxy类。该类即为动态...

Javahih
2017/07/21
0
0
JDK动态代理和CGLiB动态代理

JDK动态代理 JDK动态代理要求类必须实现某一接口,代理类是同一接口的实现类。 JDK动态代理主要涉及两个类:Proxy和InvocationHandler。InvocationHandler是一个接口,可以通过实现该接口定义...

kakayang2011
2016/03/13
80
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue组件及路由理论知识

一、 组件component 1. 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码组件是自定义元素(对象) 2. 定义组件的方式 方式1:先创建...

一个yuanbeth
刚刚
0
0
Saltstack配置之 nodegroups

#cd /etc/salt #mkdir master.d #vim node.conf //按组写入文件 nodegroups: client_all: 'L@192.168._._,192.168._._' clienta: 'L@192.168.192._' clientb: 'L@192.168.192._' #/etc/init......

硅谷课堂
7分钟前
0
0
expect(spawn) 自动化git提交和scp拷贝---centos(linux)

**在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式: ** #!/usr/bin/expect #设置参数 set src [lindex $argv 0] set dest [lin...

helplove
11分钟前
1
0
用Build来构建对象的写法

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。 import java.io.Serializable;import java.util.Date;public class Log impleme...

算法之名
13分钟前
11
0
利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
26分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
30分钟前
2
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
32分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
34分钟前
1
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
40分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部