`

Java 代理,InvocationHandler,Proxy

    博客分类:
  • java
阅读更多

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Test t=new Test();

         t.inter();
    }

   void inter(){
        ServiceProxy proxy = new ServiceProxy();
        ServiceImpl service = new ServiceImpl();
        proxy.setService(service);
        Object service2 = Proxy.newProxyInstance(ServiceImpl.class.getClassLoader(), new Class[]{Service.class} , proxy);
        System.out.println(service2.getClass());
        Service s = (Service)service2;             //只能转换为接口
    }

}

 

interface Service{
    String prt();
}

class ServiceImpl implements Service{
    public String prt(){
        System.out.println(" Interface Impl");
        return "InterFaceImpl";
    }
}

class ServiceProxy implements InvocationHandler{

    Object service;
   
    void setService(Object service){
        this.service=service;
    }
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        Object o=null;
        o=method.invoke(service, args);
        return o;
    }
}

分享到:
评论

相关推荐

    Java动态代理实现 Proxy InvocationHandler

    总结来说,Java动态代理通过`Proxy`和`InvocationHandler`提供了灵活的代码扩展机制,可以在运行时为对象创建代理,实现在不修改原有代码的基础上添加额外功能。这在处理需要拦截和增强的对象时非常有用,例如日志...

    java InvocationHandler

    Java中的`InvocationHandler`接口是Java动态代理机制的核心组成部分,主要用在`java.lang.reflect`包下。这个接口提供了一种方法,使得我们可以在运行时创建具有特定行为的代理对象。这种行为通常体现在调用代理对象...

    InvocationHandler, Proxy机制

    在Java编程语言中,`InvocationHandler`和`Proxy`机制是动态代理的重要组成部分,它们提供了在运行时创建接口实现的能力,使得我们可以在不修改原有代码的情况下扩展或增强对象的行为。这些概念对于理解和实现面向切...

    java proxy demo 代理类的运用demo

    Java代理类是面向切面编程(AOP)的一种实现方式,它允许我们在不修改原有代码的情况下,为已有的对象提供额外的功能。在这个“java proxy demo”中,我们将深入探讨如何利用Sun JDK API来创建和使用Java动态代理。 ...

    java Proxy 动态代理

    在Java中,动态代理主要通过`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口来实现。Proxy类是用于创建一个代理对象,而InvocationHandler接口则定义了代理对象调用方法时的行为。 1. **...

    Java 动态代理Proxy应用和底层源码分析.pdf

    Java动态代理主要由`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口来支持。 #### 二、Java动态代理的应用场景 Java动态代理通常应用于以下几种场景: 1. **AOP(面向切面编程)**:...

    java实现Proxy例子

    我自己用eclipse写的java代码,可以直接用eclipse导入,也可以直接用java -jar proxy_sample.jar执行 代码量很小,尽量通过注释进行说明 本例实现了InvocationHandler接口,代码具有典型性 在研究代理模式(Proxy...

    Java动态代理Proxy和cglib

    Java的`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口是实现动态代理的关键。Proxy类用于创建一个实现了特定接口的代理对象,而InvocationHandler接口定义了处理方法调用的逻辑。下面是一...

    proxy.rar java三种代理模式源码

    在Java中,我们可以使用`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口来实现。`Proxy`类用于创建代理对象,`InvocationHandler`接口定义了代理对象方法调用的处理逻辑。在"DynamicProxy...

    代理模式java代码 Proxy(5) 2个代理类

    Java提供了动态代理机制,主要是通过`java.lang.reflect.Proxy`和`java.lang.reflect.InvocationHandler`接口来实现。动态代理的优点是可以在运行时动态创建代理对象,不需要预先编写代理类。下面是一个动态代理的...

    Java代理模式Java动态代理

    ### Java代理模式与Java动态代理详解 #### 一、代理模式概述 代理模式是一种软件设计模式,它在客户端和目标对象之间提供了一种间接层。这种模式的主要目的是控制客户端对目标对象的访问,并且可以在不修改原有...

    Java动态代理[动态类Proxy的使用]

    本文将深入探讨Java中的动态代理,特别是基于`java.lang.reflect.Proxy`类的使用。 首先,`java.lang.reflect.Proxy`是Java标准库中用于生成动态代理类的关键类。它允许我们创建一个新的接口实现类,而无需手动编写...

    java proxy

    Java代理在编程中是一种强大的设计模式,主要用于在不修改原有对象的情况下增强或扩展其功能。在Java中,有两种主要的代理实现方式:静态代理和动态代理。 1. 静态代理: 静态代理是在编译时就已经确定了代理类和...

    Java动态代理语法Proxy类原理详解

    "Java动态代理语法Proxy类原理详解" Java动态代理语法Proxy类原理详解是Java语言中的一种非常重要的语法机制,它可以动态地生成代理对象,从而对目标对象进行增强和修改。本文将详细介绍Java动态代理语法Proxy类...

    Java动态代理ReflectProxyDemo

    首先,Java中的动态代理是通过`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口来实现的。`Proxy`类用于创建一个代理对象,而`InvocationHandler`接口则定义了处理代理对象的方法调用的逻辑...

    java代理方法假设和验证的Proxy源码分析.docx

    本文将深入探讨Java代理方法的假设、验证以及Proxy类的源码分析。 首先,让我们理解Java代理的基本概念。在Java中,代理主要通过两种方式实现:接口代理(基于Java动态代理JDK Proxy)和类代理(基于CGLIB等库)。...

    代理模式java代码 Proxy(1)

    Java提供了一种动态创建代理对象的方式,即`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口。动态代理可以在运行时创建代理对象,而无需预先编写代理类。`ProxyDisplay.java`可能就利用了...

    Proxy & InvocationHandler

    在Java编程语言中,`Proxy`和`InvocationHandler`是两个关键的概念,它们主要用于实现动态代理,这是一种在运行时创建接口实例的技术。动态代理在很多场景下都非常有用,比如日志记录、性能监控、事务管理等。下面...

    从房屋买卖看 java proxy 模式

    在 Java 中,我们可以使用 `java.lang.reflect.Proxy` 类和 `java.lang.reflect.InvocationHandler` 接口来创建动态代理。`Proxy` 类用于生成代理实例,而 `InvocationHandler` 接口则定义了处理代理对象方法调用的...

Global site tag (gtag.js) - Google Analytics