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

反射 静态代理 动态代理

阅读更多

import java.lang.reflect.InvocationHandler ;

import java.lang.reflect.Proxy ;

import java.lang.reflect.Method ;

interface Subject{

public String say(String name,int age) ; // 定义抽象方法say

}

class RealSubject implements Subject{ // 实现接口

public String say(String name,int age){

return "姓名:" + name + ",年龄:" + age ;

}

};

class MyInvocationHandler implements InvocationHandler{

private Object obj ;

public Object bind(Object obj){

this.obj = obj ; // 真实主题类

return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this) ;

}

public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{

Object temp = method.invoke(this.obj,args) ; // 调用方法

return temp ;

}

};

public class DynaProxyDemo{

public static void main(String args[]){

Subject sub = (Subject)new MyInvocationHandler().bind(new RealSubject()) ;

String info = sub.say("李兴华",30) ;

System.out.println(info) ;

}

};

 

 

 

 

 

分享到:
评论

相关推荐

    Java静态代理和动态代理

    与静态代理不同,动态代理在程序运行时生成,利用Java的反射API动态创建代理类。动态代理适用于那些在运行时才知道需要代理的对象或者代理行为的情况。Java提供了`java.lang.reflect.Proxy`类和`java.lang.reflect....

    包含静态代理和动态代理demo代码

    静态代理的示例将展示如何通过代理类来包装和扩展真实类的功能,动态代理的示例则会展示如何利用反射机制在运行时创建代理类并实现相同的目标。通过学习和理解这些代码,你将能够更好地掌握代理模式的应用,并在实际...

    静态代理与动态代理Demo

    代理模式分为静态代理和动态代理两种主要形式,每种都有其特定的应用场景和优势。下面我们将深入探讨这两种代理模式,并通过一个“黄牛买票”的例子来具体说明。 首先,我们来看静态代理。静态代理是程序员在编译时...

    静态代理和动态代理Demo

    静态代理和动态代理是两种常见的代理模式,它们在Java中有着广泛的应用,特别是在SpringBoot等框架中。本资源提供了一个简单的Java实现,适用于JDK1.8版本,并经过了验证,对初学者理解设计模式具有指导意义。 静态...

    静态代理和动态代理的例子

    代理模式可以分为两种主要类型:静态代理和动态代理。这两种代理方式各有特点,广泛应用于软件系统中,如权限控制、缓存、事务管理等场景。 **静态代理** 静态代理是最基础的代理形式,代理类和被代理类在编译时就...

    Java 动态代理详解(代理模式+静态代理+JDK动态代理+CGLIB动态代理)

    Java 动态代理详解(代理模式+静态代理+JDK动态代理+CGLIB动态代理) Java 动态代理是 Java 编程语言中的一种强大工具,广泛应用于 Spring AOP、Hibernate 数据查询、测试框架的后端 mock、RPC 远程调用、Java 注解...

    反射实现aop 动态代理

    在上述示例中,展示了如何通过静态代理实现 AOP。首先定义了一个接口 `IHello`,包含一个业务方法 `sayHello`。然后创建了一个实现了 `IHello` 的类 `Hello`,它执行实际的业务逻辑。为了添加日志记录功能,我们创建...

    AOP动态代理(反射机制)

    5. **对比静态代理**:动态代理相比静态代理(手动编写代理类)具有更高的灵活性。静态代理需要为每个目标类创建一个代理类,而动态代理则可以在运行时动态创建代理对象,减少了代码量,同时适应性更强,能够处理...

    静态代理、jdk动态代理、cglib动态代理

    静态代理的实现方式是:在编译时,创建一个代理类,该代理类继承自被代理的对象,并重写其中的一些方法,以便控制对被代理对象的访问。 静态代理的优点是:它的实现方式简单易懂,易于维护和扩展。但是,它的缺点是...

    静态代理及动态代理的劣迹摘要

    静态代理及动态代理的劣迹摘要 在软件开发中,设计模式是一种非常重要的知识点,能够帮助开发者编写出更加结构化、可维护、可扩展的代码。在 23 种经典设计模式中,代理模式是一种非常常用的模式,它可以帮助我们...

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

    在Java中,代理主要分为静态代理和动态代理。 1. 静态代理: 静态代理是在编译时就已经明确代理类与被代理类关系的一种方式。为了实现静态代理,我们需要手动创建一个代理类,这个代理类通常会实现与被代理类相同的...

    Spring AOP的静态代理和动态代理,转移到调用处理器一个集中的方法中处理.docx

    【Spring AOP的静态代理和动态代理】 在软件开发中,代理模式是一种常见的设计模式,它允许我们在不修改原有对象的基础上,对对象的行为进行增强。代理模式的核心思想是通过代理对象来控制对原始对象(也称为委托...

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

    代理模式可以进一步细分为静态代理和动态代理。 - **静态代理**:在程序编译时就已经确定代理类的具体实现方式。这意味着每次需要代理不同的操作时,都需要修改代理类的代码,这违反了软件工程中的开闭原则。 - **...

    java静态代理与动态代理

    ### Java静态代理与动态代理详解 #### 一、代理模式概述 代理模式是软件工程领域中常用的一种设计模式,尤其在Java开发中极为常见。它主要用于控制对某个对象的访问,或者提供额外的功能如日志记录、性能追踪、...

    动态代理及静态代理及ssh整合

    动态代理和静态代理是代理模式的两种主要实现方式,它们在Java编程中尤为常见。 首先,让我们从静态代理开始。静态代理是手动创建的代理类,它通常与被代理类位于同一个包下,并且实现相同的接口。在这个过程中,...

Global site tag (gtag.js) - Google Analytics