Struts学习笔记(五)拦截器上 拦截器的基本原理(动态代理)
来源:互联网 发布:无限流量软件 编辑:程序博客网 时间:2024/06/18 05:20
6.1拦截器动态代理
6.1.1建立被代理对象接口
package com.lei.interceptor;
public interfaceTargetInterface {
public void Something();
}
6.1.2建立被代理对象
package com.lei.interceptor;
public classTarget implementsTargetInterface {
@Override
public void Something() {
// TODO Auto-generated method stub
System.out.println("do something");
}
}
6.1.3建立拦截器类
package com.lei.interceptor;
public classInterceptor {
public void before(){
System.out.println("before");
}
public void after(){
System.out.println("after");
}
}
6.1.4建立处理器类
package com.lei.interceptor;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
*@author renlei
*真正的处理器
*/
public class MyHandler implementsInvocationHandler{
privateObject object ;
privateInterceptor interceptor = new Interceptor();
publicObject getObject() {
returnobject;
}
publicvoid setObject(Object object) {
this.object= object;
}
@Override
publicObject invoke(Object proxy, Method method, Object[] args)
throwsThrowable {
//TODO Auto-generated method stub
Objectresult = null;
interceptor.before();
result= method.invoke(object, args);
interceptor.after();
returnresult;
}
}
6.1.5产生动态代理
package com.lei.interceptor;
import java.lang.reflect.Proxy;
public classMyProxy {
public Object getProxy(Objectobject){
MyHandlermyHandler = new MyHandler();
myHandler.setObject(object);
return Proxy.newProxyInstance(Target.class.getClassLoader(),object.getClass().getInterfaces(), myHandler);
}
}
6.1.6实现Client
package com.lei.interceptor;
import java.lang.reflect.Proxy;
public classClient {
public static void main(String []arsg){
//生成被拦截对象
TargetInterfacetarget=newTarget();
MyProxymyProxy =newMyProxy();
TargetInterfaceproxy = (TargetInterface)myProxy.getProxy(target);
proxy.Something();
}
}
原工程下载地址http://download.csdn.net/detail/renlei0109/7022859
- Struts学习笔记(五)拦截器上 拦截器的基本原理(动态代理)
- 动态代理--struts的拦截器基础
- Struts2学习笔记五(拦截器)
- Struts拦截器学习笔记
- Struts学习笔记---拦截器
- JAVA动态代理(拦截器)
- JAVA动态代理(拦截器)
- springMVC学习笔记五(拦截器详解)
- WebService学习笔记(五)拦截器与SOAP协议
- Struts2学习笔记(五)拦截器下 struts2拦截器配置及详解
- Struts中的拦截器学习笔记
- Struts2学习(五)拦截器介绍
- Struts2学习笔记(八) 拦截器(Interceptor)(上)
- 拦截器与动态代理
- struts 的拦截器
- struts的拦截器
- struts 拦截器(Interceptors)
- Struts(8)拦截器
- mybatis代码生成器
- 购Cloudant何目的?IBM砸170亿赌大数据
- PHPDocumentor的代码注释规范说明
- hdu 4707 bellman
- [tfs] workitemtracking source code
- Struts学习笔记(五)拦截器上 拦截器的基本原理(动态代理)
- 前端模块化开发的价值
- 在夜场的智能手环,不光测量还要好玩
- Cannot subclass final class class 解决
- Navigation drawer 和 Up Carat在fragments中的转换
- K-均值算法Matlab仿真
- centOS6.3下安装eclipse
- FLEX 让浏览器某个范围内出现滚动条
- Pl SQL developer基本使用