ProxyFactory

原创 2012年03月27日 17:33:41
package reflect;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import static java.lang.System.out;
interface Action // 目标类的实现的接口
{
	void say();
	void cry();
	void smile();
}
interface Advice{   // 在代理执行目标方法之前的建议接口
	void beforeMethod();
	void afterMethod();
}
class MyAdvice implements Advice // 实现建议的类	
{
	@Override
	public void afterMethod() {
		out.println("method start");
	}
	@Override
	public void beforeMethod() {
		out.println("method after");
	}
}
public class ProxyFactory {
	
	public  Object target  = null;
	public Object bind(final Object target,final Advice advice) { // 得到一个代理,并且在执行目标方法之前执行建议
		this.target = target;
		return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),new InvocationHandler(){
			@Override
			public Object invoke(Object proxy, Method method, Object[] args)
					throws Throwable {
				Object result = null;
				advice.beforeMethod(); // 在执行目标方法之前执行建议 
				result = method.invoke(target, args);
				advice.afterMethod();// 之后 的建议
				return result;
			}
		});
	}
	public static void main(String args[]) {
		Object target = new Action() {
			@Override
			public void cry() {
				out.println("I'm crying...");
			}
			@Override
			public void say() {
				out.println("I'm saying...");
			}
			@Override
			public void smile() {
				out.println("I'm smiling...");
			}
		};
		Advice myadvice = new MyAdvice();
		Action proxy = (Action)new ProxyFactory().bind(target, myadvice);
		proxy.cry();
	}
	
}

Spring中的AOP-ProxyFactory

1. 前置通知 实现org.springframework.aop.MethodBeforeAdvice接口的before方法,该方法接受三个参数:被调用的方法、传给该方法的参数和目标对象。 publ...
  • geloin
  • geloin
  • 2012年05月08日 15:20
  • 4332

AOP系列(一)——ProxyFactoryObject 显式创建AOP代理

AOP概念   Aspect Oriented Programming,面向切面编程,可以通过预编译方式和运行期动态代理,实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。 前提 了解...
  • u010924834
  • u010924834
  • 2015年08月04日 21:15
  • 996

Spring中的ProxyFactoryBean

ProxyFactoryBean的作用是产生proxy。 Spring 中 ProxyFactoryBean的层次结构: ProxyFactoryBean的声明如下:public class Prox...
  • gunzh
  • gunzh
  • 2006年01月16日 21:34
  • 6158

springAOP之ProxyFactory

ProxyFactory就springAOP创建代理的工厂,现在以此为入口进行aop源码的解读。 首先看ProxyFactory的结构图: TargetClassAware根据结构图,先看接口Ta...
  • kuangfengbuyi
  • kuangfengbuyi
  • 2016年09月12日 15:04
  • 1969

ProxyFactory

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agre...
  • czzhenmsdn
  • czzhenmsdn
  • 2013年12月10日 07:37
  • 148

SpringAPI手动创建代理对象——ProxyFactory

可以通过注解的方式来自定义代理对象的创建,同时也可以通过SpringAPI,手动编程的方式来创建代理对象。几个重要的API: ProxyFactory MethodInterceptor...
  • u012834750
  • u012834750
  • 2017年05月12日 21:24
  • 693

剖析ProxyFactory

Spring 定义了org.springframework.aop.framework.AopProxy接口,并提供了两个final类型实现类...
  • hehexiaoyou
  • hehexiaoyou
  • 2014年04月11日 11:10
  • 908

Spring源码分析之ProxyFactoryBean方式实现Aop功能的分析

实现Aop功能有两种方式, 1. ProxyFactoryBean方式: 这种方式是通过配置实现 2. ProxyFactory方式:这种方式是通过编程实现 这里只说ProxyFactoryBean方...
  • u011734144
  • u011734144
  • 2017年06月18日 19:36
  • 1484

Spring源码学习-5.ProxyFactoryBean实现与源代码分析

1.设计原理 proxyConfig 在这个继承关系中,ProxyConfig是最底层的类,这是一个数据基类,为子类提供配置属性 AdvisedSupport: 封装了AOP对通知和通知器的操作 ...
  • bigcaicai1995
  • bigcaicai1995
  • 2015年08月11日 09:08
  • 594

Spring ProxyFactory

ProxyFactory 是 Spring AOP的实现方式之一。下面介绍下ProxyFactory的用法。 1、接口定义 public interface UserReadService {...
  • csdn_xpw
  • csdn_xpw
  • 2017年03月22日 22:42
  • 42
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ProxyFactory
举报原因:
原因补充:

(最多只允许输入30个字)