动态代理
来源:互联网 发布:osg 相机位置姿态矩阵 编辑:程序博客网 时间:2024/04/29 12:27
package com.rainteen.framework.util.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import com.rainteen.framework.xml.dom4j.IXMLDom4JParser;
/**
* JDK
* @author rainteen
* @version 1.0
*/
@SuppressWarnings("all")
public class DynamicProxy implements InvocationHandler {
private Object target=null;
public DynamicProxy(){}
public DynamicProxy(Object target){
if(target!=null)
this.target=target;
}
/**
* @return
*/
public Object getProxy(){
if(this.target==null)
return null;
return Proxy.newProxyInstance(
this.getClass().getClassLoader(),
this.target.getClass().getInterfaces(),
this);
}
/**
* @param target
* @return
*/
public Object getProxy(Object target){
if(target==null)
return null;
this.target=target;
System.err.println("DynamicProxy::getProxy() is running...");
return Proxy.newProxyInstance(
this.getClass().getClassLoader(),
this.target.getClass().getInterfaces(),
this);
}
/**
* @param proxy
* @param method
* @param args
*/
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object resObj=null;
if(this.target!=null){
Class clazz=this.target.getClass();
if(IXMLDom4JParser.class.isAssignableFrom(clazz)){
System.err.println("DynamicProxy::invoke() target object is IXMLDom4JParser instance...");
resObj=method.invoke(this.target, args);
}
}
return resObj;
}
/**
* @param args
*/
public static void main(String[] args) {
String xml="<?xml version='1.0' encoding='GBK'?>" +
"<input id='in'><handler id='checkUser' value=''>com.rainteen.ajax.DeliverArticle</handler>" +
"<params id='params'><param id='userName'>com.rainteen.ajax.ValidateUser</param>" +
"<param id='password'>dontknow</param></params></input>";
System.out.println(xml);
}
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import com.rainteen.framework.xml.dom4j.IXMLDom4JParser;
/**
* JDK
* @author rainteen
* @version 1.0
*/
@SuppressWarnings("all")
public class DynamicProxy implements InvocationHandler {
private Object target=null;
public DynamicProxy(){}
public DynamicProxy(Object target){
if(target!=null)
this.target=target;
}
/**
* @return
*/
public Object getProxy(){
if(this.target==null)
return null;
return Proxy.newProxyInstance(
this.getClass().getClassLoader(),
this.target.getClass().getInterfaces(),
this);
}
/**
* @param target
* @return
*/
public Object getProxy(Object target){
if(target==null)
return null;
this.target=target;
System.err.println("DynamicProxy::getProxy() is running...");
return Proxy.newProxyInstance(
this.getClass().getClassLoader(),
this.target.getClass().getInterfaces(),
this);
}
/**
* @param proxy
* @param method
* @param args
*/
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object resObj=null;
if(this.target!=null){
Class clazz=this.target.getClass();
if(IXMLDom4JParser.class.isAssignableFrom(clazz)){
System.err.println("DynamicProxy::invoke() target object is IXMLDom4JParser instance...");
resObj=method.invoke(this.target, args);
}
}
return resObj;
}
/**
* @param args
*/
public static void main(String[] args) {
String xml="<?xml version='1.0' encoding='GBK'?>" +
"<input id='in'><handler id='checkUser' value=''>com.rainteen.ajax.DeliverArticle</handler>" +
"<params id='params'><param id='userName'>com.rainteen.ajax.ValidateUser</param>" +
"<param id='password'>dontknow</param></params></input>";
System.out.println(xml);
}
}
0 0
- 代理-->静态代理&动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- General Ledger Useful SQL Scripts
- nio 拷贝
- Leetcode(Search in Rotated Sorted Array II )
- php常用函数-正则
- 七夕给楠楠修改的表白网页
- 动态代理
- 黑莓来电显示程序BBIPCall1.2.0发布
- hdu 2133 What day is it
- 主机系统监控指标获取方法
- ZOJ 2859 二维线段树
- 安卓自定义相机倒立解决方案
- 小米2013-朋友圈
- 【图解】javaScript组成结构
- leetcode 刷题之路 63 Binary Tree Zigzag Level Order Traversal