`
zhangjijun
  • 浏览: 35876 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java代理示例

 
阅读更多
代理模式在Spring中,运用的淋漓精致,面向切面的编程,变得很有趣


假设有个实际书籍供应商,网上书籍供应商,而网上书籍供应商是代理商
package com.study.proxy; 

public interface Subject { 

         public void sailBook(); 
} 


public class RealSubject implements Subject { 

@Override 
public void sailBook() { 
System.out.println("卖书"); 
} 

} 


public class SubjectHandler implements InvocationHandler { 

private Object subject; 

public void setSubject(Object subject) { 
this.subject = subject; 
} 

@Override 
public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable { 
if (subject == null) { 
System.out.println("无权"); 
return null; 
} else { 
return method.invoke(subject, args); 
} 

} 

} 


客户端使用: 
package com.study.proxy; 

import java.lang.reflect.Proxy; 

public class Client { 

public static void main(String[] args) { 
Subject subject = new RealSubject(); 
SubjectHandler handler1 = new SubjectHandler(); 
handler1.setSubject(subject); 
SubjectHandler handler2 = new SubjectHandler(); 
Subject proxySubject1 = (Subject) Proxy.newProxyInstance( 
RealSubject.class.getClassLoader(), 
RealSubject.class.getInterfaces(), handler1); 
Subject proxySubject2 = (Subject) Proxy.newProxyInstance( 
RealSubject.class.getClassLoader(), 
RealSubject.class.getInterfaces(), handler2); 
proxySubject1.sailBook(); 
proxySubject2.sailBook(); 
} 
} 
 
分享到:
评论

相关推荐

    Java代理示例代码

    在Java中,代理模式有两种主要实现方式:静态代理和动态代理。 **静态代理** 在静态代理中,我们需要手动创建一个代理类,该类实现与原始类相同的接口,并在其方法中调用原始对象的方法。例如,假设我们有一个`...

    yubo.agent:java代理示例

    在这个“yubo.agent:java代理示例”项目中,我们将探讨这两种代理机制及其应用场景。 首先,我们来看JDK动态代理。JDK动态代理是基于接口的,它要求被代理的对象必须实现至少一个接口。Java的`java.lang.reflect....

    java JAVA_OPTS javaagent

    总结来说,这个压缩包提供了一个完整的Java代理示例,包括了代理jar、运行示例、源代码和使用说明,是一个很好的学习和实践Java代理技术的资源。开发者可以通过研究这个例子来深入理解`JAVA_OPTS`和`javaagent`的...

    java代理模式示例源码

    在给定的“java代理模式示例源码”中,我们可以通过房产中介的例子来理解这种模式。 房产中介在现实生活中,是客户与房东之间的桥梁,它可以代表客户处理租赁事宜,也可以在房东和客户之间传递信息,这与代理模式的...

    Java代理模式Java动态代理

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

    java动态代理和cglib动态代理示例分享共5页.pdf

    以下是一个简单的Java动态代理示例: ```java public class MyInvocationHandler implements InvocationHandler { private Object target; public MyInvocationHandler(Object target) { this.target = target;...

    Java动态代理示例代码.rar

    Java动态代理是Java编程中一个重要的特性,它允许我们在运行时创建代理类,这些代理类可以作为原有类的代理,实现在调用原有方法前后添加额外的行为。这种技术在AOP(面向切面编程)中广泛应用,如日志记录、性能...

    Java动态代理程序切片示例

    总结起来,这个示例展示了如何利用Java的注解和动态代理技术为JavaBean添加额外的功能。通过注解,我们可以方便地标识需要进行特殊处理的方法,而动态代理则负责在运行时生成代理对象,使得在调用这些方法时能够执行...

    JAVA核心技术示例

    8. **反射机制**:Java的反射API允许在运行时动态地获取类的信息并操作类的对象,是许多高级功能如插件机制、动态代理的基础。 9. **泛型**:泛型引入了类型安全,使得集合可以存储特定类型的元素,避免了强制类型...

    Java爬虫代码示例.rar

    Java爬虫需要模拟浏览器行为,如设置User-Agent,甚至使用代理IP来避免被封禁。 8. **数据存储**:抓取到的数据通常需要保存,可以是文件系统、数据库(如MySQL、MongoDB)或是云存储服务。Java的标准库JDBC可以...

    JAVA静态代理和动态代理

    以下是一个简单的静态代理模式示例: 1. 定义接口: ```java public interface Service { void doSomething(); } ``` 2. 实现目标对象: ```java public class RealService implements Service { @Override ...

    Java反射示例代码.rar

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。...提供的"Java反射示例代码.rar"资源正好可以帮助初学者通过实践来理解这些概念。

    java动态代理demo

    5. **动态代理示例** - 首先,定义一个接口,如`MyService`,包含一些业务方法。 - 创建一个实现了`MyService`接口的目标对象,如`RealService`,实现接口中的方法。 - 实现`InvocationHandler`接口,重写`invoke...

    java简单示例rmi

    5. **Stub和Skeleton**:Stub是远程对象的代理,它驻留在客户端,接收客户端的调用并转发给服务器。Skeleton则在服务器端,负责接收Stub转发的请求并调用相应的远程方法。在现代Java版本中,Stub和Skeleton由JVM自动...

    java代理模式

    Java代理模式是一种设计模式,它在面向对象编程中扮演着重要的角色,主要目的是为了在不修改原有对象的基础上,为对象添加额外的功能或者控制对对象的访问。代理模式的核心思想是通过代理类来间接调用目标类的方法,...

    java装饰模式及动态代理模式示例源码

    装饰模式和动态代理模式是Java编程中两种非常重要的设计模式,它们都在代码的扩展性和灵活性方面发挥着关键作用。下面将分别对这两种模式进行详细解释,并结合手写的数据库连接池和动态代理模式的使用进行深入探讨。...

    Java静态代理与动态代理demo

    // 动态代理示例 interface Service { void doSomething(); } // InvocationHandler 实现 class DynamicProxy implements InvocationHandler { private Object target; public DynamicProxy(Object target) { ...

    JavaEE proxy简单代理示例

    在这个动态代理示例中,我们创建了一个`DynamicProxyHandler`实现了`InvocationHandler`接口,然后使用`Proxy.newProxyInstance()`方法创建代理对象。代理对象在调用方法时会通过`invoke`方法转发到真实对象上。 ...

    Java写http代理服务器

    本主题将深入探讨如何使用Java语言来编写这样的代理服务器。以下是对这个主题的详细解析: 首先,理解HTTP代理服务器的基本原理是必要的。HTTP代理服务器作为客户端与目标服务器之间的中介,它接收客户端的HTTP请求...

    java代码cmpp 2.0简单示例绝对可用

    在这个"java代码cmpp 2.0简单示例绝对可用"的项目中,我们可以了解到如何使用Java编程语言来实现CMPP 2.0协议的客户端。 首先,CMPP 2.0协议主要包含几个核心的消息类型,如CMPP_CONNECT、CMPP_SUBMIT、CMPP_...

Global site tag (gtag.js) - Google Analytics