Java CGLIB
Java Cglib
1.CGLIB°üµÄ½éÉÜ
´úÀíΪ¿ØÖÆÒª·ÃÎʵÄÄ¿±ê¶ÔÏóÌṩÁËÒ»ÖÖ;¾¶¡£µ±·ÃÎʶÔÏóʱ£¬ËüÒýÈëÁËÒ»¸ö¼ä½ÓµÄ²ã¡£JDK×Ô´Ó1.3°æ±¾¿ªÊ¼£¬¾ÍÒýÈëÁ˶¯Ì¬´úÀí£¬²¢ÇÒ¾³£±»ÓÃÀ´¶¯Ì¬µØ´´½¨´úÀí¡£JDKµÄ¶¯Ì¬´úÀíÓÃÆðÀ´·Ç³£¼òµ¥£¬µ±ËüÓÐÒ»¸öÏÞÖÆ£¬¾ÍÊÇʹÓö¯Ì¬´úÀíµÄ¶ÔÏó±ØÐëʵÏÖÒ»¸ö»ò¶à¸ö½Ó¿Ú¡£Èç¹ûÏë´úÀíûÓÐʵÏֽӿڵļ̳еÄÀ࣬¸ÃÔõô°ì£¿ÏÖÔÚÎÒÃÇ¿ÉÒÔʹÓÃCGLIB°ü
CGLIBÊÇÒ»¸öÇ¿´óµÄ¸ßÐÔÄܵĴúÂëÉú³É°ü¡£Ëü¹ã·ºµÄ±»Ðí¶àAOPµÄ¿ò¼ÜʹÓã¬ÀýÈçSpring AOPºÍdynaop£¬ÎªËûÃÇÌṩ·½·¨µÄinterception£¨À¹½Ø£©¡£×îÁ÷ÐеÄOR Mapping¹¤¾ßhibernateҲʹÓÃCGLIBÀ´´úÀíµ¥¶Ësingle-ended(¶à¶ÔÒ»ºÍÒ»¶ÔÒ»)¹ØÁª£¨¶Ô¼¯ºÏµÄÑÓ³Ùץȡ£¬ÊDzÉÓÃÆäËû»úÖÆÊµÏֵģ©¡£EasyMockºÍjMockÊÇͨ¹ýʹÓÃÄ£·Â£¨moke£©¶ÔÏóÀ´²âÊÔjava´úÂëµÄ°ü¡£ËüÃǶ¼Í¨¹ýʹÓÃCGLIBÀ´ÎªÄÇЩûÓнӿڵÄÀà´´½¨Ä£·Â£¨moke£©¶ÔÏó¡£
CGLIB°üµÄµ×²ãÊÇͨ¹ýʹÓÃÒ»¸öС¶ø¿ìµÄ×Ö½ÚÂë´¦Àí¿ò¼ÜASM£¬À´×ª»»×Ö½ÚÂë²¢Éú³ÉеÄÀà¡£³ýÁËCGLIB°ü£¬½Å±¾ÓïÑÔÀýÈç GroovyºÍBeanShell£¬Ò²ÊÇʹÓÃASMÀ´Éú³ÉjavaµÄ×Ö½ÚÂë¡£µ±²»¹ÄÀøÖ±½ÓʹÓÃASM£¬ÒòΪËüÒªÇóÄã±ØÐë¶ÔJVMÄÚ²¿½á¹¹°üÀ¨classÎļþµÄ¸ñʽºÍÖ¸Á¶¼ºÜÊìϤ¡£
Figure 1: CGLIB Library and ASM Bytecode Framework
ͼһÏÔʾÁ˺ÍCGLIB°üºÍһЩ¿ò¼ÜºÍÓïÑԵĹØÏµÍ¼¡£ÐèҪעÒâµÄÊÇһЩ¿ò¼ÜÀýÈçSpring AOPºÍHibernate£¬ËüÃÇΪÁËÂú×ãÐèÒª¾³£Í¬Ê±Ê¹ÓÃJDKµÄ¶¯Ì¬´úÀíºÍCGLIB°ü¡£HiberaterʹÓÃJDKµÄ¶¯Ì¬´úÀíʵÏÖÒ»¸öרÃÅΪ WebShereÓ¦Ó÷þÎñÆ÷µÄÊÂÎñ¹ÜÀíÊÊÅäÆ÷£»Spring AOP£¬Èç¹û²»Ç¿ÖÆÊ¹ÓÃCGLIB°ü£¬Ä¬ÈÏÇé¿öÊÇʹÓÃJDKµÄ¶¯Ì¬´úÀíÀ´´úÀí½Ó¿Ú¡£
2.CGLIB ´úÀíµÄAPIS
CGLIB°üµÄ»ù±¾´úÂëºÜÉÙ£¬µ±Ñ§ÆðÀ´ÓÐÒ»¶¨µÄÀ§ÄÑ£¬Ö÷ÒªÊÇȱÉÙÎĵµ£¬ÕâÒ²ÊÇ¿ªÔ´Èí¼þµÄÒ»¸ö²»×ãÖ®´¦¡£Ä¿Ç°CGLIBµÄ°æ±¾ÊÇ£¨2.1.2£©,Ö÷ÒªÓÉһϲ¿·Ö×é³É£º
net.sf.cglib.core
µ×²ã×Ö½ÚÂë´¦ÀíÀ࣬ËûÃǴ󲿷ÖÓëASMÓйØÏµ¡£
? net.sf.cglib.transform
±àÒëÆÚ»òÔËÐÐÆÚÀàºÍÀàÎļþµÄת»»
? net.sf.cglib.proxy
ʵÏÖ´´½¨´úÀíºÍ·½·¨À¹½ØÆ÷µÄÀà
? net.sf.cglib.reflect
ʵÏÖ¿ìËÙ·´ÉäºÍC#·ç¸ñ´úÀíµÄÀà
? net.sf.cglib.util
¼¯ºÏÅÅÐò¹¤¾ßÀà
? net.sf.cglib.beans
JavaBeanÏà¹ØµÄ¹¤¾ßÀà
· ´ó¶àʱºò£¬½ö½öΪÁ˶¯Ì¬µØ´´½¨´úÀí£¬Äã½öÐèҪʹÓõ½´úÀí°üÖкÜÉÙµÄһЩAPI¡£
ÕýÈçÎÒÃÇÏÈǰËùÌÖÂ۵ģ¬CGLIB°üÊÇÔÚASM
Ïà¹ØÎĵµ£º
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("ÍøÖ·");
BufferedReader in = new BufferedReader(new InputStreamReader(yahoo.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) ......
(×ªÔØ±êÇ©£ºfckeditorit ·ÖÀࣺJava)
1.½«FCKeditorĿ¼ÏµÄeditor¿½±´µ½ÏîÄ¿µÄWebContentĿ¼ÏÂ
2.²¢°ÑECKeditor-2.3.jar ºÍ commons-fileupload.jar¿½±´µ½ÏîÄ¿\WebContent\WEB-INF\libĿ¼ÏÂ
3.°Ñ FCKeditor.tld¿½±´µ½ÏîÄ¿\WebContent\WEB-INFÏÂ
4.ÔÚweb.xmlÀïÌí¼ÓÈçÏ´úÂë
´úÂë
<servlet> ......
1. J2EEÊǹ淶£¬ÊÇÒ»ÖÖJSR±ê×¼£¬ÓÐÏêϸÎĵµ£¬²ûÊöJ2EEÌṩÄÄЩ¹¦ÄÜ£¬¿ÉÒÔÏÂÔØÕâÑùÎĵµ£¬µ±È»»¹ÓÐһЩ´úÂë½Ó¿Ú£¬ÕâÊǵäÐÍJavaÊÀ½çÖеĿò¼Ü´úÂë+±ê×¼ÎĵµÐÎʽ£¬ÕâÊÇÖ»ÓÐ×ÔÓÉÊÀ½ç²ÅÓеĹ淶£¬ÔÚ΢ÈíMSÊÀ½çÄãÊǾø¶Ô²»»á¿´µ½µÄ£¬ËùÒÔ£¬´Ó΢Èíת¹ýÀ´µÄ£¬»áÔΣ¬»á²»ÊÊÓ¦£¬²»ÄÜÔÙ°´ÕÕËûÃÇÒÔǰµÄ¾ÑéÀ´¿´´ý×ÔÓɵÄÐÂÊÀ½ç¡£
2.¼Ü¹¹ÊǾ ......
×é¼þ
¹¦ÄÜ
Com.guipei.listener. SessionListener
¼àÌý×é¼þ£¬Íê³ÉHttpSessionContextµÄ¹¦ÄÜ
index.jsp
ʵÏÖÓû§µÇ½£¬´´½¨ÐµÄsession
logout.jsp
ʵÏÖÓû§Í˳ö£¬Óû§×Ô¶¯É¾³ýsession
display.jsp
ÏÔʾÓû§µÇ½ÐÅÏ¢£¬ÔÚÓû§µÇ½ºó×Ô¶¯×ªÈë
session.jsp
Áгöµ±Ç°ËùÓеÄsession
kill.jsp
ɱµôÖ¸¶¨µÄ»á»° ......