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

代理的应用

阅读更多


import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class BaseProxy implements InvocationHandler{

protected Object target;

public Object getTarget() {
return target;
}

public void setTarget(Object target) {
this.target = target;
}
public BaseProxy(){
}

public BaseProxy(Object obj){
this.target = obj;
}

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO 自动生成方法存根

String methodName = method.getName();

this.doBefore(methodName);

Object object = method.invoke(target,args);

this.doAfter(methodName);

return object;
}

public void doBefore(){

}
public void doBefore(String methodName){
System.out.println("begin:"+methodName);
}

public void doAfter(){

}
public void doAfter(String methodName){
System.out.println("end:"+methodName);
}

public Object getObject(){
Class[] interfaces=target.getClass().getInterfaces();
if(interfaces==null || interfaces.length==0){
interfaces=new Class[1];
interfaces[0]=target.getClass();
}
return Proxy.newProxyInstance(target.getClass().getClassLoader(),interfaces,this);
}

protected InvocationHandler getHandler(Object obj){
return new BaseProxy(obj);
}

public Object getObject(Object obj){
Class[] interfaces=obj.getClass().getInterfaces();
if(interfaces==null || interfaces.length==0){
interfaces=new Class[1];
interfaces[0]=obj.getClass();
}
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),interfaces,this.getHandler(obj));
}

public static void main(String[] args) throws Throwable{
System.out.println("run");
}

}
分享到:
评论

相关推荐

    nginx反向代理应用程序

    **Nginx反向代理应用程序详解** 在现代Web服务架构中,Nginx作为一个高性能的HTTP和反向代理服务器,扮演着至关重要的角色。本文将深入探讨Nginx的反向代理功能及其在应用程序部署中的应用。 首先,理解什么是反向...

    简单的代理应用

    在这个“简单的代理应用”中,我们探讨的核心概念就是代理模式及其在Objective-C中的实现。代理模式允许一个对象(通常是控制器)代表另一个对象(比如视图)来处理特定的事件或任务,这样可以保持对象间的松耦合。 ...

    IP代理应用软件

    标题中的“IP代理应用软件”指的是能够帮助用户通过代理服务器改变其网络访问时的IP地址的工具。在互联网上,每个设备都有一个唯一的IP地址,而IP代理则提供了一种方式来隐藏或替换真实的IP,这在数据爬取、网络测试...

    手机安卓代理应用的一个小程序

    【标题】:“手机安卓代理应用的一个小程序” 这个标题揭示了我们正在讨论的是一款适用于安卓操作系统的代理应用程序。在安卓平台上,代理应用通常用于更改设备的网络设置,通过代理服务器进行网络访问,这有助于...

    移动设备上移动代理应用的安全性研究 论文

    ### 移动设备上移动代理应用的安全性研究 #### 摘要与背景介绍 本文主要探讨了移动设备上移动代理应用的安全性问题。随着移动设备(如智能手机和平板电脑)的广泛普及,移动代理技术在这些受限设备上的应用越来越...

    castle IOC AOP动态代理应用

    在"castle IOC AOP动态代理应用"这个主题中,我们可以看到这些技术是如何协同工作的。首先,通过Castle Windsor容器管理我们的服务实例,实现依赖注入。然后,利用AOP和动态代理,我们可以为这些服务添加额外的行为...

    Python_开始以更简单的方式构建基于llmems的多代理应用程序.zip

    本主题聚焦于使用Python构建基于llmems(可能是“轻量级内存管理系统”或类似的缩写)的多代理应用程序。这样的系统通常涉及到分布式计算、并发处理以及高效的数据管理。以下是对这个主题的详细解释: 首先,我们...

    Android全局代理应用proxydroid.zip

    ProxyDroid 是 Android 上的一个全局代理应用,可以帮助你设置 Android 设备上的代理。 标签:proxydroid

    java + 动态代理 + 动态代理实际应用场景

    2: 动态代理demo 举例实际应用场景(载入数据库驱动的时候,使用AIDL与系统Servic进行通信) 3: 动态代理使用到基础理论:ClassLoader 加载.class字节码文件得到 , Class对象, Class对象通过 newProxyInstance ...

    brook - Go语言编写的一款跨平台代理应用.zip

    brook - Go语言编写的一款跨平台代理应用.zip

    lotus domnio java写代理应用程序.doc

    lotus domnio java写代理应用程序.doc

    Weblogic负载均衡/Session复制之集群架构之代理应用实例

    Weblogic负载均衡/Session复制之集群架构 中的代理应用实例 https://oscar.blog.csdn.net/article/details/104144153

    前置机代理客户端.zip

    标题“前置机代理客户端.zip”表明这是一个包含客户端代理软件的压缩文件,可能包含了部署和配置前置机代理应用所需的所有文件。用户可以通过解压并安装这个客户端代理来实现对外部用户或应用的内网数据查询功能。 ...

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

    - JDK动态代理和Spring AOP在实际开发中广泛应用于事务管理、缓存、日志记录等场景。 - 比如,在分布式服务环境中,代理模式可以用于实现远程调用,如RMI、Dubbo等。 6. **示例代码**: - 创建一个简单的JDK动态...

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理)

    典型的普通代理应用场景是:局域网的一个用户要访问一个服务器ip地址为10.10.10.105的网站,显然,正常情况下是不能连通的。我们要借助于中间的Squid服务器来访问外网。 Squid的安装和命令(ubuntu 12.04): 1. ...

    VPFFT:晶体粘塑性代理应用

    **VPFFT:晶体粘塑性代理应用** 在IT领域,特别是在科学计算和工程模拟中,VPFFT(ViscoPlastic Fast Fourier Transform)是一种用于处理晶体材料粘塑性行为的算法。这个工具通常与快速傅立叶变换(FFT)相结合,以...

    nucleus-github-auth-proxy:用于 github 身份验证的代理应用

    用于 github 身份验证的代理应用 为什么? Nucleus 旨在协同工作,因此用户会希望其他用户使用 github 登录到 Nucleus。 为此,当用户共享其本地服务器时,我们无法使用基于 localhost 的登录。 在这种情况下,...

Global site tag (gtag.js) - Google Analytics