Java Proxy¶¯Ì¬´úÀí
ÏÈ¿´¸öÀý×Ó£º
½Ó¿Ú
package example;
public interface Basic {
public void hello();
}
½Ó¿ÚµÄʵÏÖÀà
package example;
public class BasicService implements Basic {
public void hello() {
Sysytem.out.println("Hello, world");
}
}
ʵÏÖÁËInvocationHandler½Ó¿ÚµÄÀà
package example;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LogHandler 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);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result = null;
try {
log("method starts..." + method);
result = method.invoke(delegate, args);
log("method ends..." + method);
} catch (Exception e) {
log(e.toString());
}
&nb
Ïà¹ØÎĵµ£º
±í´ïʽÒâÒ壺
1.×Ö·û
x ×Ö·û x¡£ÀýÈça±íʾ×Ö·ûa
\\ ·´Ð±Ïß×Ö·û¡£ÔÚÊéдʱҪдΪ\\\\¡££¨×¢Ò⣺ÒòΪjavaÔÚµÚÒ»´Î½âÎöʱ,°Ñ\\\\½âÎö³ÉÕýÔò±í´ïʽ\\£¬ÔÚµÚ¶þ´Î½âÎöʱÔÙ½âÎöΪ\£¬ËùÒÔ·²ÊDz»ÊÇ1.1Áоٵ½µÄתÒå×Ö·û£¬°üÀ¨1.1µÄ\\,¶øÓÖ´øÓÐ\µÄ¶¼ÒªÐ´Á½´Î£©
\0n ´øÓа ......
ÔÚ·Ö²¼Ê½·þÎñ¿ò¼ÜÖУ¬Ò»¸ö×î»ù´¡µÄÎÊÌâ¾ÍÊÇÔ¶³Ì·þÎñÊÇÔõôͨѶµÄ£¬ÔÚJavaµ×²ãÁìÓòÖÐÓкܶà¿ÉʵÏÖÔ¶³ÌͨѶµÄ¼¼Êõ£¬ÀýÈ磺RMI¡¢MINA¡¢ESB¡¢Burlap¡¢SOAP¡¢EJBºÍJMS µÈ£¬ÔÚj2eeÖÐ,¶Ôjavaµ×²ãÔ¶³ÌͨѶµÄ¼¼Êõ½øÐÐÁË·â×°,ÐγÉÁË Hessian ¡¢ HttpInvoker ¡¢ XFire ¡¢ Axis µÈ¶àÖÖÐÎʽµÄÔ¶³Ìµ÷Óü¼Êõ¡£ µ«¶Ô¸ß¼¶³ÌÐòÔ±¶øÑÔÈÔÐ ......
½ñÌìÔÚÍøÉÏ¿´µ½¹ØÓÚ¶ÔJAVAÄÚ´æµÄ½âÊÍ£¬¾õµÃдµÄ±È½ÏºÃ±ãÕª³ÏÂÀ´¡£
ÔÚJavaÖУ¬ÄÚ´æÐ¹Â©¾ÍÊÇ´æÔÚһЩ±»·ÖÅäµÄ¶ÔÏó£¬ÕâЩ¶ÔÏóÓÐÏÂÃæÁ½¸öÌØµã£¬Ê×ÏÈ£¬ÕâЩ¶ÔÏóÊǿɴïµÄ£¬¼´ÔÚÓÐÏòͼÖУ¬´æÔÚͨ
·¿ÉÒÔÓëÆäÏàÁ¬£»Æä´Î£¬ÕâЩ¶ÔÏóÊÇÎÞÓõ쬼´³ÌÐòÒÔºó²»»áÔÙʹÓÃÕâЩ¶ÔÏó¡£Èç¹û¶ÔÏóÂú×ãÕâÁ½¸öÌõ ......
package test;
import java.lang.reflect.Method;
public class InvokeTest {
/**
*
* main ·½·¨
* @param args
* void
*/
public static void main(String[] args) {
try {
&nbs ......