动态代理
来源:互联网 发布:网络信息良莠不齐 编辑:程序博客网 时间:2024/05/17 09:30
类1:
package readxml;
public interface BusinessInterface {
public void processBusiness();
}
类2:
package readxml;
import java.util.logging.Logger;
public class BusinessObject implements BusinessInterface {
// private Logger logger = Logger.getLogger(this.getClass().getName());
//
// public void processBusiness() {
// try {
// logger.info("start to processing...");
// // business logic here。
// System.out.println("here is business logic");
// logger.info("end processing...");
// } catch (Exception e) {
// logger.info("exception happends...");
// // exception handling
// }
// }
private Logger logger = Logger.getLogger(this.getClass().getName());
public void processBusiness() {
// business processing
System.out.println("here is business logic");
}
}
类3:
package readxml;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.logging.Logger;
public class LogHandler implements InvocationHandler {
private Logger logger = Logger.getLogger(this.getClass().getName());
private Object delegate;
public LogHandler(Object delegate) {
this.delegate = delegate;
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Object o = null;
try {
logger.info("method stats..." + method);
o = method.invoke(delegate, args);
logger.info("method ends..." + method);
} catch (Exception e) {
logger.info("Exception happends...");
}
return o;
}
}
类4:
package readxml;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BusinessInterface businessImp = new BusinessObject();
InvocationHandler handler = new LogHandler(businessImp);
BusinessInterface proxy = (BusinessInterface) Proxy.newProxyInstance(businessImp.getClass().getClassLoader(), businessImp.getClass().getInterfaces(), handler);
proxy.processBusiness();
}
}
关于classloader:
- 代理-->静态代理&动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- JDK——安装源代码库和文档
- IT项目管理的三个条件、五个步骤
- 推荐一款DataGridView的打印解决方案
- OAF开发的网页上使用了图片该注意什么
- 路由器_内网端口映射,nat_端口映射_工具_软件_远程桌面_连接_端口_花生壳_个人_FTP_服务器_WEB站点
- 动态代理
- JAVA IO流的应用
- 关于ASP动态网站的问题
- 外挂网
- 世界上最远的距离
- 使用爱普生打印票据遇到问题了
- 光的本质
- Ubuntu下安装GTK+
- PB中数据窗口的精确页面打印技术