java¶¯Ì¬´úÀí
¶¨Ò嶯̬´úÀíÀàDynamicProxy
package com.zte.adc.common;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class DynamicProxy implements InvocationHandler {
private Object object;
// °ó¶¨¹ØÏµ£¬Ò²¾ÍÊǹØÁªµ½Äĸö½Ó¿Ú£¨Óë¾ßÌåµÄʵÏÖÀà°ó¶¨£©µÄÄÄЩ·½·¨½«±»µ÷ÓÃʱ£¬Ö´ÐÐinvoke·½·¨¡£
// Proxy.newProxyInstanceµÄµÚÈý¸ö²ÎÊýÊDZíÃ÷ÕâЩ±»À¹½ØµÄ·½·¨Ö´ÐÐʱÐèÒªÖ´ÐÐÄĸöInvocationHandlerµÄinvoke·½·¨
public Object bindRelation(Object object) {
this.object = object;
return Proxy.newProxyInstance(object.getClass().getClassLoader(),
object.getClass().getInterfaces(), this);
}
// À¹½Ø¹ØÁªµÄÕâ¸öʵÏÖÀàµÄ·½·¨±»µ÷ÓÃʱ½«±»Ö´ÐУ¬Ö»ÒªÊÇ´úÀíµÄÀàÖ´Ðз½·¨ Ê×ÏȾ¹ýinvoke·½·¨
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
if ("queryForList".equals(method.getName()) && args.length == 4) {
args[2] = (Integer) args[2] - 1;
}
Object result = method.invoke(object, args);
return result;
}
}
»ñµÃ¶¯Ì¬´úÀíµÄ´úÀí¶ÔÏó ×¢Ò⶯̬´úÀí·µ»ØµÄ¶ÔÏó±ØÐëÊDZ»´úÀí¶ÔÏóµÄ½Ó¿Ú
public SqlMapClientTemplate sqlTemplate1 = this.getSqlMapClientTemplate();
public SqlMapClientOperations sqlTemplate=null;//͉˕1
private DynamicProxy dp = new DynamicProxy();
{
sqlTemplate= (SqlMapClientOperations)dp.bindRelation(sqlTemplate1);
}
public BaseSqlMapDao() {
}
Èç¹ûÔÚ “ÕâÀï1”ÖÐÓõIJ»ÊÇSqlMapClientTemplate µÄ½è¿Ú ¶øÊÇÖ±½ÓÓõÄSqlMapClientTemplate ÄÇô
¾Í»áÅ׳öÒì³£
¶¯Ì¬´úÀíµÄÔÀí¾ÍÊÇͨ¹ý¶¯Ì¬´úÀíÀàDynamicProxy Éú³ÉÁËÒ»¸öеĶÔÏó Proxy¶ÔÏó
¸ÃжÔÏó¼Ì³ÐµÄ½Ó¿Ú¾ÍÊÇÔ¶ÔÏóµÄ½Ó¿Ú£¬²úÉúµÄжÔÏó²¢²»ÊÇÔ´¶ÔÏóµÄʵÀý ¶øÊDzúÉúµÄ´úÀí¶ÔÏóµÄʵÀý
Ïà¹ØÎĵµ£º
ÔËÐÐʱ¶à̬ÐÔÊÇÃæÏò¶ÔÏó³ÌÐòÉè¼Æ´úÂëÖØÓõÄÒ»¸ö×îÇ¿´ó»úÖÆ£¬¶¯Ì¬ÐԵĸÅÄîÒ²¿ÉÒÔ±»Ëµ³É“Ò»¸ö½Ó¿Ú£¬¶à¸ö·½·¨”¡£JavaʵÏÖÔËÐÐʱ¶à̬ÐԵĻù´¡ÊǶ¯Ì¬·½·¨µ÷¶È£¬ËüÊÇÒ»ÖÖÔÚÔËÐÐʱ¶ø²»ÊÇÔÚ±àÒëÆÚµ÷ÓÃÖØÔØ·½·¨µÄ»úÖÆ£¬ÏÂÃæ¾Í¼Ì³ÐºÍ½Ó¿ÚʵÏÖÁ½·½ÃæÌ¸Ì¸javaÔËÐÐʱ¶à̬ÐÔµÄʵÏÖ¡£
¡¡¡¡Ò»¡¢Í¨¹ý ......
package com.allywll.core.exec.base;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent. ......
ÔÚÏÖʵ¹¤×÷ÖУ¬ÎÒÃdz£³£ÐèÒª±£´æÒ»Ð©ÏµÍ³ÅäÖÃÐÅÏ¢£¬´ó¼ÒÒ»°ã¶¼»áÑ¡ÔñÅäÖÃÎļþÀ´Íê³É£¬±¾Îĸù¾Ý±ÊÕß¹¤×÷ÖÐÓõ½µÄ¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨Ð¡Ð¡×ܽáһϣ¬Ö÷ÒªÐðÊöµÄÊÇspring¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨¡£
Ò».¶ÁÈ¡xmlÅäÖÃÎļþ
(Ò»)н¨Ò»¸öjava bean(HelloBean.java)
java ´úÂë
1. package chb.demo.vo;
2. ......
¶ÔÏóÐòÁл¯(Serializable)ÊÇÖ¸½«¶ÔÏóת»»Îª×Ö½ÚÐòÁеĹý³Ì£¬¶ø·´ÐòÁл¯ÔòÊǸù¾Ý×Ö½ÚÐòÁлָ´¶ÔÏóµÄ¹ý³Ì¡£
ÐòÁл¯Ò»°ãÓÃÓÚÒÔϳ¡¾°£º
1.ÓÀ¾ÃÐÔ±£´æ¶ÔÏ󣬱£´æ¶ÔÏóµÄ×Ö½ÚÐòÁе½±¾µØÎļþÖУ»
2.ͨ¹ýÐòÁл¯¶ÔÏóÔÚÍøÂçÖд«µÝ¶ÔÏó£»
3.ͨ¹ýÐòÁл¯ÔÚ½ø³Ì¼ä´«µÝ¶ÔÏó¡£
¶ÔÏóËùÊôµÄÀà±ØÐëʵÏÖSerializable»òÊÇExternalizable½Ó¿Ú ......
˵À´Í´¿à£¬¹ØÓÚjava°ü½á¹¹£¬´ò°ü£¬±àÒ룬ÔËÐеÄ֪ʶ£¬ÎÒÊÇѧÁËÍü£¬ÍüÁËѧ¡£ËäÈ»¾ø´ó²¿·Ö¿ª·¢»ùÓÚ¶ÔIDEµÄʹÓ㬲¢ÇÒºÜˬ£¬µ«Ã¿´Î»Ø¹éÃüÁîÐÐģʽʱ£¬ÓÉÓÚȱ·¦¶Ôjava°ü½á¹¹¡¢´ò°ü¡¢±àÒë¡¢ÔËÐÐÏà¹ØµÄ֪ʶ×ܽἰÊìÁ·ÔËÓ㬿Éν´ç²½ÄÑÐÐ
ÍøÉÏËäȻɢ²¼ºÜ¶à¹ØÓÚÕâ·½ÃæµÄÂÛÊö£¬µ«×ܸоõ²»·ûºÏÎÒµÄÇÐÉíʵ¼Ê
¿´À´£¬×Ô¼º¶¯ÊÖ¹éÄÉ×ܽᣠ......