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

动态代理工厂

    博客分类:
  • java
阅读更多

代理接口
public interface PersonService {
	
	public void save(String name,Integer persionId);
	
	public String getName(Integer persionId);

}


代理类
public class PersonServiceImpl implements PersonService {

	public String getName(Integer persionId) {
		// TODO Auto-generated method stub
		return "pan";
	}

	public void save(String name, Integer persionId) {
		// TODO Auto-generated method stub
		System.out.println("我是 save 方法!");

	}

}


代理工厂
public class ProxyFactory implements InvocationHandler {

	public Object targetObj;

	public Object createProxyObject(Object targetObj) {
		this.targetObj = targetObj;
		ClassLoader loader = targetObj.getClass().getClassLoader();

		return Proxy.newProxyInstance(loader, targetObj.getClass().getInterfaces(),
				this);

	}

	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		
		Object result = method.invoke(targetObj, args);

		return result;
	}

}



测试类
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		ProxyFactory factory = new ProxyFactory();
		
		PersonService service = (PersonService)factory.createProxyObject(new PersonServiceImpl());
		
		service.save("dsfds",11);

	}

}
2
1
分享到:
评论

相关推荐

    动态代理和工厂方法例子

    在编程领域,动态代理和工厂方法是两种非常重要的设计模式,它们在软件开发中起着至关重要的作用。这里我们将深入探讨这两种模式,并结合提供的文件名,即“005_Factory_Series_DesignPattern”和“006_Dynamic_...

    工厂类中实现动态代理

    在结合工厂模式实现动态代理时,我们可以创建一个工厂类,该工厂负责根据需求生成动态代理对象。例如,当需要对数据访问层(DAO)进行日志记录或者事务管理时,可以通过工厂生成带有这些额外功能的代理DAO对象。这样...

    java设计模式(工厂模式,动态代理,责任链模式……)实例源码

    这个压缩包中包含的实例源码涵盖了多种设计模式,包括工厂模式、动态代理和责任链模式。让我们深入探讨这些设计模式的核心概念、用途以及它们在实际编程中的应用。 1. 工厂模式:这是最基础的设计模式之一,属于...

    java代理机制 JDK动态代理和cglib代理 详解

    - `Proxy`类是JDK动态代理的工厂,它提供静态方法`newProxyInstance()`用于创建代理对象。 - 创建代理对象需要三个参数:类加载器、目标接口数组和InvocationHandler实例。 二、CGLIB代理 CGLIB(Code Generation...

    java动态代理demo

    `java.lang.reflect.Proxy` 类是用于创建动态代理对象的工厂类。我们需要使用`Proxy.newProxyInstance()`方法,传入类加载器、接口数组以及自定义的`InvocationHandler`实例,来生成代理对象。 5. **动态代理示例*...

    java动态代理例子

    Java动态代理是Java编程中一个重要的特性,它允许我们在运行时创建代理类,这些代理类可以作为原有类的代理,从而在不修改原有类代码的情况下,扩展或增强原有类的功能。这里我们将深入探讨两个主要的Java动态代理...

    JDK动态代理源码

    1. **Java.lang.reflect.Proxy**:这是JDK动态代理的关键类,它提供了创建动态代理对象的工厂方法`newProxyInstance()`。这个方法接收三个参数:`ClassLoader`用于加载代理类,`Interface[]`表示代理对象需要实现的...

    Jdk动态代理,cglib动态代理,反射和拦截器(链)示例

    JDK动态代理的示例可能包括创建一个代理工厂,生成代理对象并实现InvocationHandler。CGLIB示例可能涉及使用Enhancer类来生成代理对象。对于拦截器,可能会展示如何定义和注册拦截器,以及如何构建拦截器链。此外,...

    动态代理由浅入深

    在动态代理的实现中,Proxy 类是生成代理对象的工厂,它可以生成代理对象。Proxy 类的 newProxyInstance 方法是生成代理对象的入口,该方法需要三个参数:类加载器、被代理对象的接口和 InvocationHandler 接口的...

    动态代理的前世今生-绝对经典

    `Proxy` 类是用于创建动态代理对象的工厂,而`InvocationHandler`接口定义了代理对象调用方法时的行为。当我们创建一个代理对象时,需要提供一个实现了`InvocationHandler`的实例,并指定一组接口,代理对象将实现...

    java动态代理 经典文章(word 2007格式的)

    `Proxy`类是Java动态代理的工厂,通过`newProxyInstance()`方法创建代理对象。该方法需要传入三个参数:类加载器、目标对象实现的接口列表和`InvocationHandler`实例。 4. **面向切面编程(AOP)**: AOP是一种...

    java 简答可复用动态代理类

    - `Proxy`类是Java提供的动态代理的工厂,它可以根据一个接口生成实现了该接口的代理类的对象。这个代理类会动态地生成并实现接口的所有方法。 - `InvocationHandler`接口定义了一个处理方法调用的回调方法`invoke...

    JDK动态代理简单示例

    除了基本的代理实现,JDK动态代理还可以结合其他设计模式,如工厂模式,创建更加复杂的代理对象。此外,Spring框架中的AOP功能也是基于JDK动态代理或CGLIB实现的,它允许开发者定义切面,对满足特定条件的方法进行...

    java语言反射与动态代理学习笔记2(动态代理部分)

    1. **Proxy类**: 是生成动态代理类的工厂类,`Proxy.newProxyInstance()`方法用于创建代理对象,需要传入目标接口、类加载器和InvocationHandler。 2. **InvocationHandler接口**: 定义了一个`invoke()`方法,当通过...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    静态代理是由开发者显式创建代理类,而动态代理则利用Java的动态代理API在运行时动态生成代理类。 工厂模式是一种创建型设计模式,它提供了一种创建对象的统一接口,从而使得创建和使用对象的代码分离。工厂模式...

    代理模式,JDK动态代理,SpringAOP来龙去脉

    在Java中,我们可以使用JDK的动态代理或者Spring AOP来实现代理模式。 JDK动态代理主要依赖于`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口。Proxy类是生成代理对象的工厂,而...

    输出JDK和CGLib动态代理产生的class文件.zip

    在Java编程中,动态代理是一种强大的技术,它允许我们在运行时创建对象的代理,以便在调用实际方法之前或之后执行额外的操作。本压缩包文件提供了两个示例项目,分别展示了JDK动态代理和CGLib动态代理的实现,帮助...

    Java+单例+多例+工厂+枚举+动态代理===》演示

    单例设计模式案例演示 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,**应用该模式的这个类只有一个实例**。即一个类只有一个对象实例。 #### 单例设计模式实现步骤 ...动态代理案例演示

    java动态代理(2)

    `Proxy`类是动态代理的工厂,它提供了创建动态代理对象的方法。`Proxy.newProxyInstance()`是关键方法,它需要三个参数:代理接口的类加载器、代理接口的Class数组以及一个实现了`InvocationHandler`接口的对象。这...

Global site tag (gtag.js) - Google Analytics