`
wangwengcn
  • 浏览: 173370 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java的动态代理(一)

    博客分类:
  • Java
阅读更多
JDK自带的动态代理支持必须要求基于接口编程,使用


java.lang.reflect.InvocationHandler和





java.lang.reflect.Proxy,请看下面的例子:

首先是接口:

 

package proxy;

public interface HelloWorld {
	public String helloWord();
}

 

 

然后是接口实现类:

 

package proxy;

public class HelloWorldImpl implements HelloWorld {

	@Override
	public String helloWord() {
		System.out.println("hello");
		return "hello";
	}

}

 

 

 

接着我们写一个代理的处理类:

 

package proxy;

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

public class HelloWordHandler implements InvocationHandler {
	
	private Object obj;
	
	public HelloWordHandler(Object obj)
	{
		this.obj = obj;
	}

	@Override
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		doBefore();
		Object result = method.invoke(obj, args);
		doAfter();
		return result;
	}
	
	private void doBefore()
	{
		System.out.println("before method invoke!");
	}

 

	 private void doAfter()
	 {
        System.out.println("after method invoke!");
	 }


}

 

 

 

 

最后这个是测试类


 

 

 

 

package proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		InvocationHandler handler = new HelloWordHandler(new HelloWorldImpl());
        HelloWorld proxy = (HelloWorld)Proxy.newProxyInstance(
        		HelloWorldImpl.class.getClassLoader(),
        		HelloWorldImpl.class.getInterfaces(),
                handler);
        proxy.helloWord();
	}

}

 

分享到:
评论

相关推荐

    一个简单的java动态代理的实例

    一个简单的java动态代理的实例

    java动态代理例子

    java动态代理例子,这里面有两个例子,一个是jdk的动态代理,一个是cglib的动态代理,让你明白什么是动态代理,动态代理可以做什么。

    Java 动态代理.md

    Java 动态代理 - Java 动态代理 - 代理模式 - 静态代理 - 动态代理 - JDK 动态代理 - CGLIB 动态代理 - Javassist 代理 - ASM 代理 这篇文章我们来聊一下 Java 中的动态代理。 动态代理在 Java 中有着广泛...

    Java反射机制和动态代理

    主要讲述Java反射机制与设计模式之一:代理模式的原理与应用;同时详细讲述了Java对代理模式的支持以及Java中动态代理的原理,应用与实践。

    Java静态代理与动态代理demo

    这里提供了静态代理和动态代理的入门写法~一看即懂!

    Java 代理 代理模式 静态代理与动态代理 常见的动态代理实现 .md

    - 静态代理与动态代理 - 常见的动态代理实现 - JDK Proxy - CGLIB - JDK Proxy 和 CGLIB 的对比 - 动态代理的实际应用 - Spring AOP 说在前面:今天我们来聊一聊 Java 中的代理,先来聊聊故事背景: 小明想...

    动态代理及生成的代理类

    动态代理及其生成的代理类,可以反编译查看其类的结构。

    Java反射及动态代理

    详细讲解java的reflect包的,阐述反射机制及动态代理的细节问题。其中动态代理部分内容参考网上资料。读完此文,相信会对javaf反射机制有一个完整清楚的了解。尤其应该看看其他中代码举例部分。

    java静态代理和动态代理详解

    Java中提供了一个java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现动态代理。代理类在运行时会根据被代理接口自动生成,并且可以通过InvocationHandler接口对方法进行增强。

    JAVA动态代理机制

    一个有关JAVA动态代理机制的例子,用eclipse开发的,如果有对Java有兴趣的朋友,不妨先拿去看一看。

    Java动态代理程序切片示例

    利用注解对一个JavaBean进行动态代理。

    Java动态代理CGlib Jar包

    CGLIB是一个强大的、高性能的代码生成库。它被广泛使用在基于代理的AOP框架(例如Spring AOP和...EasyMock和jMock作为流行的Java测试库,它们提供Mock对象的方式来支持测试,都使用了CGLIB来对没有接口的类进行代理。

    JAVA动态代理的例子

    JAVA动态代理的例子 一个简单的例子 初学者可以下载试试

    java实现免费代理IP的获取方式 并实时校验代理IP是否有效

    Java 实现免费代理IP的获取方式 并动态实时校验是否有效,java文件项目内含有Jsoup的Jar包(Jsoup是加工过的,含请求),有2个主入口程序: 其一:用于请求代理IP,并立即校验是否是一个有效的代理IP,如果有效,...

    JAVA动态代理实例

    JAVA的动态代理的一个例子

    经典java反射和动态代理代码

    这是一个经典java动态代理和反射的例子、、这在里分享给大家、、希望对大家有用、、、

    Java动态代理资源包

    cglib是针对类来实现代理的,原理是对指定的业务类生成一个子类,并覆盖其中业务方法实现代理。因为采用的是继承,所以不能对final修饰的类进行代理

    JAVA 动态代理机制

    通过详细的一个Proxy实例,详尽的讲解了JAVA动态代理的实现和一些基本知识。

    java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar

    java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar /** * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法...

    Java动态代理机制分析及扩展

    本文通过分析Java动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java动态代理运作过程,希望能帮助读者加深对Java动态代理的理解和应用。本文的标签...

Global site tag (gtag.js) - Google Analytics