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úÉúµÄ´úÀí¶ÔÏóµÄʵÀý
Ïà¹ØÎĵµ£º
1. ±à³Ì¹ßÀý(Programming Practices)
9.1 Ìṩ¶ÔʵÀýÒÔ¼°Àà±äÁ¿µÄ·ÃÎÊ¿ØÖÆ(Providing Access to Instance and Class Variables)
ÈôûÓÐ×ã¹»ÀíÓÉ£¬²»Òª°ÑʵÀý»òÀà±äÁ¿ÉùÃ÷Ϊ¹«ÓС£Í¨³££¬ÊµÀý±äÁ¿ÎÞÐèÏÔʽµÄÉèÖÃ(set)ºÍ»ñÈ¡(gotten)£¬Í¨³£Õâ×÷Ϊ·½·¨µ÷ÓõıßԵЧӦ (side effect ......
½ñÌìÊÇ2010Äê1ÔÂ23ºÅÁ賿£¬ÎÒºöÈ»×öÁ˸ö¾ö¶¨£¬Ï£Íû²»»áÁ÷²ú¡£ËäÈ»×î½üÒªºÃºÃѧϰӢÓ»¹ÒªÓÃC#Ϊһ¸öŮʿ×öÒ»¸öÔ±¹¤¹ÜÀíϵͳ¡£µ«ÊÇÎÒ¾ö¶¨Ã¿Ìì³é³öÖÁÉÙ3СʱºÃºÃѧϰjava¿´Á½ÖÜÄÜѧµ½Ê²Ã´¶«Î÷¡£
ÏÖÔÚ½ö½ö»á°²×°ÅäÖÃjdk£¬ÓøöecpliseºÍJcreator±àдµã¼òµ¥³ÌÐò¡£Á¬jdk
api¶¼²»È ......
ÔÚÏÖʵ¹¤×÷ÖУ¬ÎÒÃdz£³£ÐèÒª±£´æÒ»Ð©ÏµÍ³ÅäÖÃÐÅÏ¢£¬´ó¼ÒÒ»°ã¶¼»áÑ¡ÔñÅäÖÃÎļþÀ´Íê³É£¬±¾Îĸù¾Ý±ÊÕß¹¤×÷ÖÐÓõ½µÄ¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨Ð¡Ð¡×ܽáһϣ¬Ö÷ÒªÐðÊöµÄÊÇspring¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨¡£
Ò».¶ÁÈ¡xmlÅäÖÃÎļþ
(Ò»)н¨Ò»¸öjava bean(HelloBean.java)
java ´úÂë
1. package chb.demo.vo;
2. ......
¶ÔÏóÐòÁл¯(Serializable)ÊÇÖ¸½«¶ÔÏóת»»Îª×Ö½ÚÐòÁеĹý³Ì£¬¶ø·´ÐòÁл¯ÔòÊǸù¾Ý×Ö½ÚÐòÁлָ´¶ÔÏóµÄ¹ý³Ì¡£
ÐòÁл¯Ò»°ãÓÃÓÚÒÔϳ¡¾°£º
1.ÓÀ¾ÃÐÔ±£´æ¶ÔÏ󣬱£´æ¶ÔÏóµÄ×Ö½ÚÐòÁе½±¾µØÎļþÖУ»
2.ͨ¹ýÐòÁл¯¶ÔÏóÔÚÍøÂçÖд«µÝ¶ÔÏó£»
3.ͨ¹ýÐòÁл¯ÔÚ½ø³Ì¼ä´«µÝ¶ÔÏó¡£
¶ÔÏóËùÊôµÄÀà±ØÐëʵÏÖSerializable»òÊÇExternalizable½Ó¿Ú ......
ÏÂÔØÒ»¸öJDKµÄ°²×°°ü£¬ÎÒÏÂÔØµÄÊÇjdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe£¬´ó¼Ò¿ÉÒÔÈ¥ÍøÉÏËÑË÷£¬Ò²¿ÉÒÔÈ¥¹Ù·½
ÏÂÔØ¡£
ÏÂÔØºó£¬µã»÷exeÎļþ£¬Ò»Ö±ÏÂÒ»²½µÄ°²×°£¬Óöµ½ÐèҪѡÔñ°²×°Ä¿Â¼µÄ£¬¿ÉÒÔĬÈÏ£¬Ò²¿ÉÒÔ×Ô¼ºÖ¸¶¨£¨ÀýÈçÖ¸¶¨°²×°ÔÚD:\Program Files\Java)
°²×°¹ý³ÌÓÐÁ½´ÎÑ¡Ôñ·¾¶µÄ£¬Ò»´ÎÊǶÔjdk1.6.0_10½ø ......