动态代理。。。使用cglib 这个jar文件。。
package test.dynasic;
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
public class TestDynasicProxy implements MethodInterceptor {
@Override
public Object intercept(Object proxy, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
System.out.println("before method invoke " + method.getName());
[color=red]Object o = methodProxy.invokeSuper(proxy, args);[/color]
System.out.println("after method invoke ");
return o;
}
public static void main(String[]args){
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(DynasicProxy.class);
enhancer.setCallback(new TestDynasicProxy());
DynasicProxy dp = (DynasicProxy)enhancer.create();
dp.saySomething();
}
}
class DynasicProxy{
public void saySomething(){
System.out.println("hello");
}
}
java中的反射机制实现的代理,适合实现接口的类
package test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class TestProxy {
public static void main(String[]args){
IProxy myProxy = (IProxy) Proxy.newProxyInstance(MyProxy.class.getClassLoader(), MyProxy.class.getInterfaces(), new MyProxyHandler<IProxy>(new MyProxy()));
String message = myProxy.saySomething();
System.out.println(message);
}
}
class MyProxy implements IProxy {
public String saySomething(){
System.out.println("hello");
return "ok";
}
}
class MyProxyHandler<T> implements InvocationHandler{
private T t;
public MyProxyHandler(T t){
this.t = t;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object returnMessage = null;
try{
System.out.println("before method invoke "+method.getName());
[color=red]returnMessage = method.invoke(t, args);[/color]
System.out.println(returnMessage);
System.out.println("after method invoke");
} catch(Exception e){
e.printStackTrace();
}
return returnMessage;
}
}
接口:
package test;
interface IProxy {
public String saySomething();
}
无语了,红色的代码让我吃尽苦头。。。 在使用代理时,不可以在代理的实现中在使用代理来调用,不然就会不断地递归调用,知道堆栈溢出,最后崩溃。。。。
分享到:
相关推荐
他指的是一个对象本身不做实际的操作,而是通过其他对象来得到自己想要的结果。这样做的好处是可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 这里能体现出一个非常重要的编程思想:不要...
实现了一份jdk动态代理的demo,做了详细注释,供以后复习使用,另外,这里为什么需要大于100个字节才能传资源?我就不想那么多不行吗???
现在许多人常用QQ(MSN/ICQ)上网聊天,但有时候在办公室或公司内部无法使用,这时你可以通过代理来实现,有很多人上网不想留下自己的真实地址,这时你可以通IP代理来实现。虽然现在网上有很我免费的IP代理,但哪个...
程序2.0版本的新功能特性 1,支持用代理自动访问网址列表,不用修改浏览器或者是本地连接的属性就能用代理来...3,支持在程序运行过程中动态的切换代理,代理想换就换;在高版本中会填加自动判断代理是否可用的功能。
代理模式的小案例,静态代理和动态代理都有。不想写代码的可以下载下来看看。
功能: 代理IP 1、代理IP指定代理:代理IP文本框输入代理IP,如42.121.131.66:8080,然后点击代理 2、代理IP定时代理:代理IP文本框中为空即可,然后...2、定时随机刷新网页,把想刷新的网页地址放置在URL.TXT文件里;
那个最近想看看Spring AOP的动态代理到底是个咋回事,特地学习了一下,写了个文档。 本文档先讲解了JDK的反射机制,然后是Proxy的动态代理、CGLIB的动态代理,因为这些是Spring AOP的底层技术,清楚了它们,你就更...
当该代理服务器收到IE发来的请求时,要将IE请求行中的webserver的域名(或者IP)剥去,再将请求转发给webserver,如果不注意这点而是直接毫无处理的把IE请求信息直接发给webserver某些网站会显示不了网页,比如新浪...
只要把a.a.a.a:8080设置到AnyProxy,然后通过在AnyProxy的进程列表对你想要代理的IE进程(iexplore.exe)进行代理, 这样IE的网络数据都是通过AnyProxy再经过a.a.a.a:8080出去的。AnyProxy还提供了简单的连接、数据...
所有修改均在index.php中 不想保留我的链接的 可以修改去除 本程序支持5种语言 简体中文 繁體中文 English 曰本語 韩语,并可以根据用户电脑 语言自动转换 中文和英文 超适合用来挂GOOGLE广告 /images/ 图片目录有...
可任意选择程序进行代理,在软件里添加想要软件, 自动给予ip代理, 也可以选择ip,代理ip出处都是来源各大好节点,速度快,并且都能用。 呵呵,是作弊的好东西,请24小时内删除,作于学习交流使用。
简单的代理应用.自己不想做的,声明一个协议,设置一个代理属性,让控制器称为代理的小例子
因此想使用nginx做为反向代理apache.整个配置安装过程很简单.在考虑高并发的情况下,在安装前就做了些优化.目前配置能抗住3000以上并发.好像不是特别大哦?呵~~ 但足以~~ 只是还有少量499问题..期待有人跟我讨论解决
同理,攻击者要想从部分代理签名Ui中获得代理签名者的私钥SPi也是不可能的。 <BR> b)该方案能抵抗合谋攻击,即只要攻击者的个数小于门限值,即使是内部成员进行攻击也不可能 href=...
代理服务器使用与架设技巧.网上的代理服务器信息多,但想要请一个适合自己的“代理”其实并不容易,在此向大家介绍两种寻觅“代理”的方法。
|如果想不验证提取的代理直接使用 请设置为:不验证是否UTF8解码 : 验证代理返回的网页内容是否进行UTF8解码 1=解码 0=不解码提取附加协议头 : 验证代理时附加的HTTP协议头 默认=空(默认协议头)验证特征 : ...
不过呢,闲暇时间手痒,所以就想利用一些免费的资源搞一个简单的代理池服务。 1、问题 代理IP从何而来? 刚自学爬虫的时候没有代理IP就去西刺、快代理之类有免费代理的网站去爬,还是有个别代理能用。当然,如果你有...
我很早就想编写一款代理软件,只是由于技术不到家,所有一直在耽搁着。去年5.12大地震之前我就计划做代理软件了。写了一个功能很小的,叫代理之猫,代码发在了我们学校的bbs里面。在余震不断的日子里,编写软件不...
代理设计模式是对象的结构模式,原理就是给某个对象提供一个代理对象...在有些情况下,一方不能或不想直接引用一个对象,而代理对象可以在双方之间起到中介的作用,这样可以大大降低彼此的耦合关系,提高彼此的灵活性。