当前位置:首页 > Java技术

Java代理详话简说

canca19年前 (2007-08-29)Java技术600

        Java的代理,使项目实现低藕合成为可能。Spring框架中的AOP,内部就是用Java代理来实现。因此,认识JAVA代理原理对学习学Spring AOP是有密切关系的。

       现在举了J2EE中的例子:如何实现日志与逻辑代码相分离呢?以下这个例子就能办到。当然,用Spring是正选。这里只是对JAVA中的代理做个解说而己。

package com.gc.action;

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

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class LogProxy implements InvocationHandler {
 private Logger logger = Logger.getLogger(this.getClass().getName());
 private Object delegate;
 //绑定代理对象
 public Object bind(Object delegate){
  this.delegate = delegate;
  return Proxy.newProxyInstance(delegate.getClass().getClassLoader(), delegate.getClass().getInterfaces(), this);
 }
 public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
  Object result = null;
  try{
   //在方法调用前后进行日志输出
   logger.log(Level.INFO,args[0] + " 开始审核数据....");
   result = method.invoke(delegate,args);
   logger.log(Level.INFO, " 审核数据结束....");
  }catch(Exception ex){
   logger.log(Level.INFO,ex.toString());
  }
  return result;
 }

代码,不难理解固此没加上什么注释...
 
}

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/560.html

标签: Java技术
分享给朋友:

“Java代理详话简说” 的相关文章

Socket与ServerSocket的问题

//服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSock…

IM技术(1)

    做项目了,NetCL今天开工了,在这些日子里,我会将自己研究的内容写下来。做个记录,以下是我在网上搜到的。关于管理用户状态的解决方案,当然,我都有一个方案。不过对客户端的任务有点重吧,我方法是客...…

JAVA内部类终极实例

最近心情不好,不想说太多东西了!电脑坏了,我现在又病了. class ClassFactory{ private final static String userName = "Hello,My name is CAnca."; public static Thread in =…

字符,字节和编码

字符,字节和编码

转自:http://www.regexlab.com/zh/encoding.htm------------------------------------------------------------- 级别:中级 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应…

Java安装后JDK/bin目录下的众多exe文件的用途

javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句生成的HTML文档 jdb…

两种Java容器类List和Set分析

容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。 Java2容器类类库的用途是“保存对象”,它分为两类: Collection----一组独立的元素,通常…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。