博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java动态代理
阅读量:2342 次
发布时间:2019-05-10

本文共 1398 字,大约阅读时间需要 4 分钟。

在学AOP的时候看到了动态代理的概念,然后写了一个helloworld。

Service.java

package bean;public interface Service {	public void service();}
ServiceImpl.java

package bean;public class ServiceImpl implements Service {	//业务方法	public void service() {		// TODO Auto-generated method stub		System.out.println("i'm servicing");	}}
MyInvocationHandler

这里的 method可以调用 method.getName();返回调用了哪个方法

package proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class MyInvocationHandler implements InvocationHandler {	// 要代理的对象 即Service	private Object service = null;	// 构造方法	public MyInvocationHandler(Object service) {		this.service = service;	}	public Object invoke(Object proxy, Method method, Object[] args)			throws Throwable {		// TODO Auto-generated method stub		Object result = null;  		System.out.println("服务即将开始...");		result = method.invoke(service, args);		System.out.println("服务已经结束!");		return result;	}}
ServiceTest.java用的JUNIT

import java.lang.reflect.Proxy;import org.junit.After;import org.junit.Before;import org.junit.Test;import proxy.MyInvocationHandler;import bean.Service;import bean.ServiceImpl;public class ServiceTest {	@Test	public void proxy() {		Service service = new ServiceImpl();		Service proxy = (Service) Proxy.newProxyInstance(service.getClass()				.getClassLoader(), service.getClass().getInterfaces(),				new MyInvocationHandler(service));		proxy.service();	}}
结果:

你可能感兴趣的文章
浅析stack around the variable was corrupted
查看>>
RGB与YUV转换
查看>>
YUV转RGB的相关函数
查看>>
ES(Elasticsearch)排序与相关性
查看>>
ES(Elasticsearch)分片内部原理
查看>>
Java IO(概述)
查看>>
Java IO(文件、管道、字节和字符数组)
查看>>
Java IO(流、Reader And Writer、异常处理)
查看>>
Java IO(RandomAccessFile、File、PipedInputStream、PipedOutputStream)
查看>>
Java NIO(二) Channel
查看>>
Java NIO(三) Buffer
查看>>
Java NIO(五) Selector
查看>>
Java NIO(六)SocketChannel、ServerSocketChannel
查看>>
6 Netty 架构剖析
查看>>
Netty简介
查看>>
Redis,API的理解和使用-全局命令
查看>>
shell之eval
查看>>
postgresql基本操作
查看>>
SQLAlchemy使用
查看>>
word设置标题
查看>>