¸ù¾ÝĦ¶û¶¨ÂÉ£¬×Ô´Ó1958Äê·¢Ã÷¼¯³Éµç·ÒÔÀ´£¬´¦ÀíËٶȺʹ洢ÈÝÁ¿Ò»Ö±ÔÚÒÔÿÁ½Äê·Ò»±¶µÄËÙ¶ÈÔö³¤¡£
µ«ÊÇÈí¼þϵͳµÄ·¢Õ¹ËÙ¶ÈòËƲ»¿É±ÜÃâµØ³¬¹ýÁËÕâÒ»ÇеÄÖ¸ÊýÔö³¤Ëٶȡ£SOAµÄÓ¦ÓÃÔ½À´Ô½¹ã·º£¬¶øÇÒËæÖ®»¹ÓзþÎñÖ®¼äµÄXMLÊý¾Ý´«µÝ·½Ê½¼°Ôö³¤¸üΪѸËÙµÄÍøÂçÓ¦Óá£ËäÈ»ÄãÈ¡µÃÁ˳ɹ¦£¬µ«ÊÇÄãµÄϵͳºÜ¿ÉÄÜ»áÂíÉϳ¬ÔØ£¬¶øÇÒÊÇÔÚÄã×îÒâÏë²»µ½µÄʱºò¡£
Ôõô½â¾öÕⳡΣ»úÄØ£¿¼øÓÚÆóÒµ¼ÆËãµÄÄÚ´æºÍ´æ´¢ÐèÇóµÄ³ÖÐøÔö³¤£¬Èí¼þÒ²ÐèҪά³ÖÏàÓ¦µÄ²½·¥¡£ÎÒÃÇ´ÓÒ»¿ªÊ¼¾ÍҪʹÓÃÕýÈ·µÄ·½·¨ÒÔÈ¡µÃ¿É¿ØÖÆÑÓ³ÙµÄÏßÐÔ¿ÉÀ©Õ¹ÐÔ¡£Êý¾ÝÎļþºÍÐÅÏ¢µÄÈÝÁ¿Ò²ÔÚ³ÖÐøÔö³¤£¬ÐèÒª¸ü¶àµÄ´¦ÀíÄÜÁ¦£¬Ò²Ê¹ÄÇЩÔÚʹÓÃÇ°ÐèÒªÏȽ«Æä¾ßÌ廯µÄÈí¼þÏԵøüΪ±¿ÖØ¡£ÔÚijЩÇé¿öÏ£¬ÕâЩ²Ù×÷ÔÚÖ´ÐÐÇ°»¹ÐèÒª¶à¸öÊäÈë¡£
ÄÇЩ¹¹½¨¼«ÏÞÊÂÎñ´¦Àí£¨XTP£©ÀàÓ¦Ó᪡ª±ÈÈçµç»°¹«Ë¾ºô½Ð½¨Á¢ºÍ¼Æ·Ñ¡¢ÍøÂçÓÎÏ·¡¢°²È«½»Òס¢·çÏÕ¹ÜÀíºÍÔÚÏßÂÃÓζ©Æ±·þÎñ¡ª¡ªµÄÈ˶ÔÕâ·½ÃæÓ¦¸ÃºÜÓÐÁ˽⡣»¹Óиü¹ã·ºµÄÓÃÀý¾ÍÊÇÍøÂçÓ¦ÓÃÐèÒª¸ù¾ÝÍøÂçÈÝÁ¿µÄÔö³¤¶øÌá¸ß£¬µ«ÊǺǫ́ϵͳȴÎÞ·¨Ó¦¶ÔÕâÑùѸÃ͵ÄÁ÷Á¿¡£
±ß½ç³É±¾
ÔÚÓë¿Í»§ÌÖÂÛ¶ÔSOA½øÐÐÑӳٿɿصÄÀ©Õ¹Ê±£¬ÎÒÃǾ³£Ê¹ÓÃÒ»¸ö³ÆΪ"±ß½ç³É±¾"£¨Boundary
Costs£©µÄÊõÓΪ±ãÓÚÀí½â£¬Ç뿼ÂÇÒÔÏÂÇé¾°£ºÓÉÒ»¸öÍøÂçÓ¦Ó㨻òÊý¾Ý¿â¡¢ÍⲿҵÎñ»ï°é¡¢´ÓEDIÎĵµ×ª»»¶øÀ´£©Éú³ÉµÄXMLÎĵµÐèÒª¾¹ý¶à¸ö·þÎñµÄ´¦Àí£¬¶øÕâ¸ö¹ý³ÌÓÉBPEL»òESB½øÐÐе÷¡£Í¨³£µÄ·½·¨ÊÇ°ÑXML½»¸ø×ÜÏߣ¬ÓÉ×ÜÏ߸ù¾Ý´¦Àí¶¨Òåµ÷ÓÃÏàÓ¦µÄ·þÎñ£¬²¢½«XMLÎĵµ×÷Ϊ·þÎñÇëÇó¸ºÔصÄÒ»²¿·Ö´«µÝ¸ø·þÎñ¡£ÐèÒª¶ÔÊý¾Ý½øÐд¦ÀíµÄ·þÎñ½«ÒÀ´Ë¶ÔXML½øÐжÁÈ¡¡£»¹ÓÐÐèÒªÓëÊý¾Ý¿â½»»¥µÄÇé¿ö¡£ÕâÖÖ·½·¨£¨Èçͼ1£©¿´ÆðÀ´·Ç³£¼òµ¥¡£
|
¡¡Í¼1£ºÊ¹ÓÃBPEL¹ý³Ì»ò·þÎñ×ÜÏßµ÷Ó÷þÎñ
|
µ«ÊÇ£¬ÔÚʵ¼ÊÖÐʹÓÃÕâÖÖ·½·¨µÄʱºòÈ´»áÓöµ½À©Õ¹ÐÔÉϵÄÎÊÌâ¡£´ÓÒ»¸ö·þÎñ´©µ½ÁíÒ»¸ö·þÎñµÄ³É±¾ÊǶàÉÙÄØ£¿ÔÚµ÷ÓÃÒ»¸ö¼òµ¥µÄÒµÎñ¹ý³ÌµÄʱºò£¬Õâ¸ö³É±¾ÏûºÄÒª·¢Éú¶àÉÙ´ÎÄØ£¿Èç¹ûXMLÎĵµ·Ç³£´ó£¬´ïµ½¼¸MµÄ·¶Î§¡¢ÊýÁ¿³É°ÙÉÏǧ£¬»òÕßÁ½ÖÖÇé¿öͬʱ·¢ÉúÄØ£¿
¶øÇÒ¿¼Âǵ½´ó¶àIT»·¾³ÊǶàƽ̨ºÍ¶àÖÖ¼¼ÊõµÄ¸´ºÏÌ壬Òò´ËÓÖ¸øÕâÖÖÇé¿öÔö¼ÓÁËеÄÀ§ÄÑ¡£¼´Ê¹´¦ÀíÒýÇæ»ò·þÎñ×ÜÏßµÄÐÔÄܷdz£³öÉ«£¬·þÎñÖն˵Ĵ¦Àí¹ý³ÌÈÔÈ»»á³ÉΪƿ¾±¡£×î½üÔÚÒ»¼Ò¿Í»§ÍøÕ¾ÉÏÏÔʾ£¬Ò»¸öÔÀ´Í¨¹ýÐèÒª15Ãë´¦Àíʱ¼äµÄÒµÎñ¹ý³Ì£¬×î½üÔÚ·åÖµ¸ºÔØʱ¾³£³¬¹ýÆäSLAÐÒéÔ¼¶¨µÄ30Ãë¡£ÔÚ¹ýÈ¥Á½ÄêÀ¿ª·¢ÈËÔ±°Ñ´ó²¿·Öʱ¼ä¶¼ÓÃÔÚÁËÓÅ»¯µ÷ÕûÕâ15¸ö·þÎñµÄÿһ´¦Ï¸½Ú£¬µ«ÊÇ×îºó¾¾³öµÄºÚÊÖÈ´ÊǸ÷·þÎñÖ®¼äµÄ±ß½ç³É±¾¡£ËûÃǽøÐеÄÒ»´ÎÏêϸ¼ì²âÏÔʾ£¬Õâ15¸ö·þÎñµ÷Óö¼Òª»¨·Ñ1µ½2ÃëµÄʱ¼äÔÚÒ»¸ö¿ªÔ´ÍøÂç·þÎñ¹¤¾ß°üÀï¶ÔXML½øÐнâÎö´¦Àí¡£Õâ²¢²»ÊÇÓÐÒâÎÛÃ↑ԴÍøÂç·þÎñ¹¤¾ß°ü£¬Ö»ÊǼòµ¥µØ˵Ã÷Ò»ÏÂÔÚÖն˽âÎö´¦ÀíXML»áÔö¼ÓÑÓ³Ù£¬²¢ÇÒÏà¼ÓЧ¹û·Ç³£¿É¹Û¡£
Èçͼ2Ëùʾ£¬Ëùµ÷Óõĸ÷¸ö·þÎñ¶¼ÐèÒª´ÓXMLµÄÔÚÏß´®Ðл¯ÐÎʽÖжÁÈ¡ÆäÓÐЧÄÚÈݲ¢½âÎöΪ±¾µØJava»ò.NET¶ÔÏóÐÎʽ£¬È»ºó²ÅÄܱ»ÒµÎñÂß¼´¦Àí¡£²¢ÇÒ£¬Èç¹û»¹Éæ¼°µ½ÓëÊý¾Ý¿âµÄ½»»¥£¬ÄÇô»¹»á·¢Éú¶îÍâµÄÏà¹ØÆ¥Åä¶ÔÏó¡£×îºó£¬»¹Òª·¢ÉúÏà·´µÄ¹ý³Ì£¬²úÉúÓë·þÎñÇëÇóÏàÓ¦µÄÏìÓ¦²¢¸ù¾ÝÒµÎñ¹ý³Ì½«Æä·¢Ë͵½ÏÂÓηþÎñ¡£
|
ͼ2£ºXMLÓë¶ÔÏó¼°¹ØϵÊý¾Ý¿âÖ®¼äµÄ·þÎñÇëÇó¼°Ïà·´Á÷³ÌµÄ±ß½ç³É±¾
|
ÔÚSOAÖУ¬±È½Ï³£ÓõĴ¦ÀíXMLµÄ·½Ê½ÊÇʹÓÃÍøÂç·þÎñºÍXMLBeans¡£Í¨¹ýXMLBeans¿É°ÑÊäÈëºÍÊä³öÍêÈ«¾ßÌ廯ȻºóÔÙÉú³É¶ÔÏó£¬ÕâÑù¿ÉÒÔ×î´ó»¯¿ÉÓÃÐԺʹ¦ÀíÐÔÄÜ¡£ÄÚ´æ´¦Àí¿ÉÄÜ°üÀ¨·ÖÀà¡¢¹ýÂË¡¢ºÏ²¢µÈ²Ù×÷£¬¶øËùÓÐÕâЩ²Ù×÷¶¼»áÔö¼Ó´¦Àíÿ´Îµ÷ÓÃËùÐèµÄÕûÌåÄÚ´æÈÝÁ¿¡£ÕâÖÖ·½Ê½È±·¦À©Õ¹ÐÔ£¬¶øÇÒÎÞ·¨Ó¦Óõ½Õâ¸öÁìÓòµÄÐí¶à³¡¾°ÖС£Ðí¶à²úÆ·Ö§³ÖXMLÁ÷£¬µ«ÕâÖÖ·½Ê½Ò²ÓоÖÏÞÐÔ£¬¼´Èç¹û²»ÏÈ´æ·ÅÊý¾Ý¿ÉÄܾÍÎÞ·¨½øÐÐÈκÎÓÐÒâÒåµÄ²Ù×÷¡£
ÄÇô£¬Äܲ»ÄÜÉè¼ÆÒ»ÖÖ·½Ê½£¬°ÑÐÅÏ¢´¢´æÔÚÒ»¸ö¿ÉÒÔºöÂÔÊý¾Ý´óСºÍµ¥»ú´¦ÀíÄÜÁ¦µÄÓ¦ÓÃÍø¸ñÖÐÄØ£¿¸ÃÓ¦ÓÃÍø¸ñ¿ÉÒÔÀûÓöą̀»úÆ÷µÄ×éºÏÄÚ´æºÍ´¦ÀíÄÜÁ¦À´Íê³ÉÒ»Ïî²Ù×÷£¬±ÈÈç´¦ÀíÒ»¸ö¸´ÔӵĹ«Ê½»ò¶Ôº£Á¿Êý¾Ý½øÐйýÂË¡£¸ÃÓ¦ÓÃÍø¸ñ»¹¿É½«Êý¾ÝµÄÉúÃüÖÜÆÚÑÓ³¤µ½·þÎñÇëÇóÖÜÆÚÖ®Í⣬³ÖÐøµ½·þÎñÆ÷ÖØÆô£¬ÉõÖÁ¿çÔ½ÍøÂç±ß½ç¡£
Èç¹ûÄãÄܽ«Íø¸ñÊý¾Ý´æ´¢µÄÄÜÁ¦ºÍ¸ßЧµÄÁ÷´¦Àí½áºÏµ½Ò»Æ𣬾ÍÄܹ»²úÉúÒ»¸ö´¦ÀíÄÜÁ¦Ô¶´óÓÚÒÔÇ°µÄ¡¢¸ß¶ÈµÄ¡¢¿ÉÀ©Õ¹µÄϵͳ¡£Í¨¹ý½«Ò»Ð©²¹³ä¼¼Êõ½áºÏµ½Ò»Æð£¬ÎÒÃǾÍÄÜÈ¡µÃ°Ñ¼ÆËã²Ù×÷À©Õ¹µ½·Ö²¼Ê½µÄ¼ÆËãÍøÂçÖУ¬¼õÉÙSOA·þÎñ¡¢Ó¦Ó÷þÎñÆ÷ºÍ¿Í»§Ó¦ÓõÈÊý¾ÝÏû·ÑÕߵĴ¦ÀíºÍÄÚ´æÐèÇó¡£ÎÒÃÇ»¹Ïû³ýÁËÊý¾Ý´¦Àí¹ý³ÌÖжÔÖмä´æ´¢Êý¾Ý¿âµÄÐèÇó¡£Í¨¹ýÓ¦ÓÃÍø¸ñÎÒÃÇ»¹¿ÉÒÔ´«ËÍÊý¾ÝµÄ²ÎÊý¶ø²»ÊÇÊý¾Ý±¾Éí£¬ÕâÑù¿ÉÒÔ¼«´óµØÌá¸ßͨÐŲãµÄЧÂʲ¢ÇÒ¼õÉÙÉõÖÁÏû³ý±ß½ç³É±¾¡£
±¾ÎÄ»¹ÓÐÒ»¶ÎÏÔʾӦÓÃÍø¸ñÖд¦Àí´óÐÍXMLÎļþµÄ´úÂëʾÀý¡£ÔÚµäÐ͵ÄXMLÎļþÖÐͨ³£ÓÐһЩԪËØÔÚûÓÐÈκÎÔ¤¶¨ÒåÏÞÖƵÄÇé¿öÏÂÖظ´¡£Í¨¹ýSTAX½âÎöÆ÷¶ÔXML½øÐд¦Àí£¬²¢ÇÒÓÃJAXB´¦ÀíXMLÓëJava¶ÔÏóÖ®¼äµÄ»á»°£¬ÎÒÃÇ¿ÉÒÔ½«ÕâЩÖظ´µÄÔªËØ´ÓXMLÁ÷ÖÐÌáÈ¡³öÀ´£¬È»ºó·Åµ½Ó¦ÓÃÍø¸ñÖÐ×÷Ϊµ¥¶ÀµÄ¶ÔÏó¡£ÕâÑù¶ÔÏó±ãÌî³äµ½ÁËÍø¸ñÖУ¬²¢ÇÒÖ»ÐèÏûºÄÓÐÏÞµÄÄÚ´æ×ÊÔ´¡£Ìî³äµ½Íø¸ñÖ®ºó£¬Íø¸ñ±ã¿ÉÒÔʹÓù¹³ÉÍø¸ñµÄ¶ą̀»úÆ÷¶ÔÊý¾Ý½øÐд¦Àí¡£Ã¿¸öÍø¸ñ³ÉÔ±½øÐÐÒ»Ïî²Ù×÷»ò¹ýÂÇ£¬È»ºó½«Öмä½á¹û´«µÝ¸øÍø¸ñ¿Í»§¶Ë²¢ÓÉÆä´¦Àí³É×îÖÕ½á¹û¡£
ʲôÊÇÓ¦ÓÃÍø¸ñ£¿
Ó¦ÓÃÍø¸ñ¾ÍÊÇÒ»¸ö»ùÓÚ£¨Ó¦ÓÃ״̬Êý¾Ý£©ÄÚ´æ´æ´¢ÒýÇæµÄˮƽ¿ÉÀ©Õ¹µÄ´úÀí¡£ÕâÖÖ·½Ê½¿ÉÒÔÐγÉÒ»¸ö·Ö²¼Ê½ÄÚ´æ³Ø£¬±ãÓÚ½«ÆäÏßÐÔÀ©Õ¹µ½ÓÉÈκθ߶˶øµÍ¼ÛµÄ±ê×¼Ó²¼þ×é³ÉµÄÒìÖÊÍø¸ñ¡£ÔÚÓ¦ÓÃÖÐʹÓÃÓ¦ÓÃÍø¸ñµÄͬʱ»¹ÄÜ»ñµÃ¸ßÐÔÄÜ¡¢À©Õ¹ÐԺͿɿ¿ÐÔ¡£
Ó¦ÓÃÀûÓÃÓ¦ÓÃÍø¸ñµÄÒ»ÖÖ·½Ê½ÊÇʹÓÃAPIˮƽµÄ½Ó¿ÚÄ£ÄâJava Hashmap¡¢.NET Dictionary»òJPA½Ó¿Ú¡£»¹ÓÐÒ»ÖÖ·½Ê½ÊÇʹÓÃSOA»·¾³ÖеķþÎñ½Ó¿Ú¡£ËùÓÐÓ¦ÓúͷþÎñ¶¼½«Êý¾Ý·ÅÈëÓ¦ÓÃÍø¸ñ£¬Ò»×鹲ͬÔËתµÄ»º´æ·þÎñÆ÷£¨ÒÔȺ²¢ÐпØÖƵķ½Ê½£©¸ºÔð¶ÔÊý¾Ý¶ÔÏóµÄ¸üкͱ¸·Ý¡£
Èçͼ3Ëùʾ£¬Ó¦ÓÃÍø¸ñ½ÓÊÕÁËÊäÈëÊý¾ÝµÄÇëÇó²¢Í¨¹ý¸ßЧÍøÂçÐÒé´«Ë͵½ÓµÓÐÔʼʵÀýÊý¾ÝµÄÍø¸ñ½ÚµãP¡£È»ºóÔʼ½Úµã½«¸üеÄÖµ¸´ÖƵ½µÚ¶þ½ÚµãBÒÔ½øÐб¸·Ý£¬ÔÙ°Ñ¿ØÖÆȨ·µ»Ø¸ø·þÎñ¡£
|
ͼ3£ºÓ¦ÓÃÍø¸ñȺ¿ÉÔÚ²»Í¬»úÆ÷Éϱ£Ö¤ÄÚ´æÊý¾ÝµÄÔʼÑù±¾ºÍ±¸·Ý |
Ó¦ÓÃÍø¸ñÔÚ¶ą̀»úÆ÷ÉÏÒÔºÏÊʵÄλÖÃ͸Ã÷ÐÔ´¢´æÊý¾Ý¡£²»¹ÜÓ¦ÓÃÍø¸ñ½«Êý¾Ý´¢´æÔÚʲôµØ·½£¬Ö»ÒªÓÐHashÖµ¾Í¿ÉËæʱ¶ÁÈ¡Ëù´æ´¢µÄÊý¾Ý¡£ÕâÑù¾Í²»ÔÙÐèÒª¸´ÔӵĴ¦ÀíλÖÃÒÀÀµÐÔºÍÊÖ¶¯·ÖÇøµÄÓ¦ÓÃÂß¼ÁË¡£Èç¹ûÍø¸ñÖеÄÒ»¸ö»ò¸ü¶àµÄ½Úµã³öÏÖ¹ÊÕÏ£¬»òÕßÓÉÓÚÍøÂçÔÒò¶øÎÞ·¨½øÐзÃÎÊ£¬ÄÇôӦÓÃÍø¸ñ¿ÉÒÔÂíÉÏ×ö³ö·´Ó¦²¢ÔÚÆäËü½¡¿µµÄ½ÚµãÉÏÖØв¼ÖÃÊý¾Ý¡£¶øÇÒÕâ¸ö¹ý³ÌÎÞÊÓ¹ÊÕϽڵãËù²ÎÓëµÄ×ÔÖ÷¸üС£ÔÚͼ4ÖУ¬¶ÁÈ¡Êý¾ÝʱÔʼ½ÚµãP³öÏÖ¹ÊÕÏ¡£ÓÚÊÇGet()ÇëÇóÂíÉϱ»µ¼ÏòÁ˱¸·Ý½Úµã²¢ÖØÐÂÉú³ÉÔʼÓ뱸·Ý½Úµã¶Ô¡£
|
ͼ4£ºÓ¦ÓÃÍø¸ñ¿ÉÒÔÌṩÄÚ´æ״̬Êý¾ÝµÄ¹ÊÕÏתÒÆ
|
´æ´¢ÔÚÍø¸ñÖеÄÊý¾Ý¿ÉÒÔÊÇ´Ó¼òµ¥µÄ±äÁ¿µ½¸´ÔӵĶÔÏóÉõÖÁ´óÐÍXMLÎĵµµÄÈκζ«Î÷¡£ÎÒÃÇÑ¡Ôñ°Ñ¿ÉÄÜÊǷdz£´óµÄXMLÎĵµ·Ö³ÉС¿é²¢ÒÔJava¶ÔÏóµÄ·½Ê½´¢´æÔÚÓ¦ÓÃÍø¸ñÖС£ÕâÑùÎÒÃǾÍÄÜʹÓÃJava
APIƽÐд¦Àí¶ÔÊý¾ÝµÄ²éѯÇëÇó¡£
Ó¦ÓÃÍø¸ñÖ§³ÖһϵÁеIJÙ×÷£¬°üÀ¨²¢Ðд¦Àí²éѯ¡¢Ê¼þºÍÊÂÎñ¡£¶ÔÓÚ´óÐÍÊý¾Ý¼¯£¬¿ÉÄܽ«Õû¸öÊý¾Ý¼¯ºÏ×÷Ϊһ¸ö²Ù×÷·ÅÈëÍø¸ñ£¬È»ºóÍø¸ñ¿ÉÒÔ½«ÄÚÈÝ·Ö·¢µ½¶à¸öÔʼºÍ±¸·Ý½ÚµãÒÔʵÏÖ¿ÉÀ©Õ¹ÐÔ¡£ÔÚ¸ü¸ß¼¶µÄÓ¦ÓÃÖУ¬Íø¸ñÉõÖÁ¿ÉÒÔÖ±½ÓÔÚÊý¾Ý´¢´æ½ÚµãÉϲ¢ÐÐÖ´ÐÐÒµÎñÂß¼£¬²¢ÇÒ¾ßÓÐÊý¾ÝÓëÂß¼µÄÇ׺ÍÁ¦£¬´Ó¶ø±£Ö¤ÔÚÓëÂß¼²Ù×÷Ïà¹ØµÄÊý¾Ý´æ´¢»úÆ÷ÉÏÖ´ÐÐÂß¼¡£
SOAÓëÓ¦ÓÃÍø¸ñ
ÏÂÒ»´úÀûÓÃÓ¦ÓÃÍø¸ñµÄSOAƽ̨¿ÉÒÔÌṩ·þÎñ¼Ü¹¹ËùÄÜÌṩµÄÒ»°ã¹¦ÄÜ£¬±ÈÈç·þÎñ²ãµÄÌáÈ¡¡¢Êý¾Ýת»»Óë·ÓɵÄÖн顢¶àÐÒéÖ§³Ö¡¢ÊÊÅäÆ÷µÈ£¬²¢½«ÆäÓëÓ¦ÓÃÍø¸ñ¹¦ÄܽáºÏÒÔÎÞ·ìʵÏÖ·þÎñÇëÇó¸ºÔØ¡¢¹²Ïí·þÎñ״̬Êý¾Ý¡¢·þÎñ½á¹û»º´æºÍʼþÇý¶¯¼Ü¹¹£¨EDA£©µÄÄÚ´æÊý¾Ý»º´æ¡£
ÄÇôÔõÑù²ÅÄÜʵÏÖÕâЩÓŵãÄØ£¿ÔÚµäÐ͵ÄSOAÇé¾°ÖУ¬Ò»¸ö´¦ÀíÁ÷³ÌÖеĶà¸ö·þÎñ¿ÉÄÜÒªÓëͬÑùµÄÊý¾Ý½øÐн»»¥¡£Èç¹ûûÓÐÍø¸ñ£¬ÄÇôÿ´Îµ÷Ó÷þÎñʱ¶¼±ØÐëΪ·þÎñÌṩËùÐèµÄÊý¾Ý¡£Í¨¹ýÍø¸ñ£¬ÎÒÃÇʵÏÖÁËÒ»ÖÖ"Ë÷Îï±êÇ©"£¨Claim
Check£©µÄģʽ¡£
¸Ãģʽ²¢²»Ê¹ÓÃÊý¾Ý¿âÀ´´æ´¢ÏûÏ¢µÄÓÐЧÊý¾Ý£¬¶øÊÇʹÓÃÓ¦ÓÃÍø¸ñ°ÑÐÅÏ¢±£´æÔÚÄÚ´æÖУ¬½öΪ¸÷¸ö·þÎñ´«µÝÒ»¸ö»òÒ»´®Êý¾ÝµÄ¹Ø¼ü×Ö¡£ÕâÒâζ×ÅËäÈ»´ÓÒ»¸ö·þÎñ´«µÝµ½ÁíÒ»¸ö·þÎñµÄ¹Ø¼ü×Ö»á¸ù¾ÝESB¡¢´¦ÀíÒýÇæºÍ´«Êä¶ø±ä»¯£¬µ«ÊÇͨ³£¶¼»á°üº¬ÔÚ·þÎñÇëÇóÖÐ×÷ΪÐÒéÍ·ÊôÐÔµÄÒ»²¿·Ö»òXMLÓÐЧ¸ºÔصÄÑéÖ¤ÔªËØ¡£·þÎñ¿ªÊ¼¾ßÓÐ"Íø¸ñÒâʶ"£¬¿ÉÒÔ¸ù¾ÝÐèÇó¶ÁÈ¡Êý¾Ý²¢µ÷ÓöÔÊý¾Ý¼¯µÄºÏ²¢ÔËËã¡£´¦ÀíÍê³ÉÖ®ºó£¬Êý¾Ý¼¯¿ÉÒÔ¼ÌÐø±£ÁôÔÚÄÚ´æÖÐÒÔ½øÐиßËÙ¶ÁÈ¡²Ù×÷£¬Ò²¿ÉÒÔÒÔ×Ó¼¯ºÍºÏÊʵĸñʽÒ첽дÈëÊý¾Ý¿â×÷Ϊ³¤ÆÚ´æ´¢µÄ¹ØϵÊý¾Ý£¨¼ûͼ5£©¡£
|
ͼ5£ºSOAÓëÓ¦ÓÃÍø¸ñ¿ÉÌṩ¶Ô·þÎñ״̬Êý¾ÝµÄÄÚ´æ¶ÁÈ¡£¬²¢Ê¹ÓÃ"Ë÷Îï±êÇ©"ģʽ×îС»¯±ß½ç³É±¾ |
XMLÍø¸ñʾÀý
1. ³¡¾°ÃèÊö
±¾Îĵı³¾°ÐÅÏ¢¼´ÊÇͨ¹ýÍø¸ñ´æ´¢·þÎñÇëÇó¸ºÔØÊý¾ÝÒÔʵÏֶಽҵÎñ¹ý³ÌµÄË÷Îï±êǩģʽ¡£µ«ÊÇÎÒÃǵÄʾÀýµÄÖ÷ҪĿ±êÊÇչʾÈçºÎÔÚÍø¸ñÖд洢´óÐÍXMLÎĵµ²¢¶ÔÆä½øÐвÙ×÷£¨È»ºó²ÅÄÜʹÓÃË÷Îï±êǩģʽ¶ÔÆä½øÐд¦Àí£©¡£
ʾÀý³¡¾°ÈçÏ£ºÒ»¸ö´óÐÍXMLÎĵµÐèÒª±»¶à¸ö·þÎñ´¦Àí¡£ÎÞÐè¶ÔÎĵµ½øÐз´´®Ðл¯¡¢½âÎö¡¢´¦Àí¡¢ÔÙ´®Ðл¯Õû¸öÎĵµ£¬Ö»ÊÇ°ÑÎĵµ·Ö³ÉС¿é£¬×ª»»³ÉJava¶ÔÏó²¢´¢´æÔÚÓ¦ÓÃÍø¸ñÖС£Õâ¸ö²Ù×÷½«ÓÉ·þÎñÁ´ÖеĵÚÒ»¸ö·þÎñ½øÐУ¬»òÕßÓɵÚÒ»¸ö·þÎñ֮ǰµÄ¸¨Öú·þÎñÍê³É¡£´Ó·þÎñÏò·þÎñ´«µÝµÄÊÇСµÃ¶àµÄXMLÏûÏ¢--"Ë÷Îï±êÇ©£¬ÆäÖаüÀ¨¶ÁÈ¡Ó¦ÓÃÍø¸ñÖеÄÊý¾ÝËùÐèµÄ¹Ø¼ü×Ö¡£
´ËÍ⣬²¢²»ÊÇÖ»ÓÐÒÔÐòÁл¯µÄ·½Ê½Ö´Ðжà¸ö·þÎñµÄʱºòÕâ¸öģʽ²ÅÓÐÓá£Ò²¿ÉÒÔÊÇÿÌìÌî³äÒ»´Îµ«ÊÇÒ»Ö±Òª±»¸÷¸ö·þÎñ²Ù×÷»ò±»Óû§Í¨¹ýÃÅ»§Ó¦ÓòéѯµÄÖîÈçÆû³µ×âÁÞÀûÂÊ»òº½°àÊý¾ÝµÈ²Î¿¼Êý¾Ý¡£
2. ²ð·ÖXML
ÎÒÃÇʹÓÃSTAX½âÎöÆ÷½«XMLÎĵµ·Ö½â³É¶à¸ö×é³É²¿·Ö¡£ÒòΪSTAX¿ªÊ¼µÄʱºòÈÔ»á¾ßÌ廯¶ÔÏóÊ÷£¬ËùÒÔÎÒÃÇÈËΪµØÑ°ÕÒÖî¶àÖظ´ÔªËØÖеĵÚÒ»¸ö¡£Èç¹ûXMLÔÚÒ»¸ö³ÆΪ"ÏîÀà"µÄÈÝÆ÷½ÚµãÖк¬Óжà¸ö"Ïî"£¬½âÎöÆ÷¾Í´Ó"Ïî"¿ªÊ¼ÒÔ±ÜÃâ¾ßÌ廯Õû¸ö"ÏîÀà"Ê÷¡£Áбí1ÊÇÕâ¸ö²Ù×÷µÄ¹Ø¼ü²¿·Ö¡£
Áбí1£ºÍ¨¹ýSTAX½âÎö·Ö½âXMLÁ÷²¢ÌáÈ¡Öظ´µÄÔªËØ
EventFilter filter = new EventFilter() {
public boolean accept(XMLEvent event) {
//first off, we need a startElement
if (!event.isStartElement()) return false;
StartElement e = (StartElement)event;
//more importantly, it must be the first "item"
if ((e.getName().getLocalPart()).equals("item"))
return true;
return false;
}
};
È»ºóÎÒÃÇʹÓÃJAXB½«µ¥¸öXMLÔªËØת»»ÎªJava¶ÔÏó¡£JAXBÔÊÐíXMLµÄPOJO³ÊÏÖ£¬ÕâʹÆä´®Ðл¯±ÈÆäËüXML£Java¼¼Êõ¸ü¼òµ¥¡£ÔÚÔËÐÐÕâ¶Î´úÂë֮ǰ£¬ÎÒÃÇÏÈÓÃEclipse
XJC²å¼þ´ÓXML SchemaÖÐÉú³ÉÁËJAXBÀà¡£Áбí2ÏÔʾÁËÕâ¸öXMLÁ÷Ñ»·µÄ¿ªÊ¼²¿·Ö£¬Æäÿһ´ÎÑ»·¶¼½«Éú³ÉÒ»¸öJAXB¶ÔÏó¡£
Áбí2£ºÍ¨¹ýJAXBµ÷Óý«XMLÔªËØת»»ÎªJava ¶ÔÏó
while (xmlfer.peek() != null) {
JAXBElement<Item> o = (JAXBElement<Item>)um.unmarshal(xmler);
if (o.getValue() instanceof Item)
{
Item ii = (Item)
o.getValue();
¡
}
Ò»µ©ÎÒÃÇÓÐÁËÖ¸Ïò"Ïî"µÄ²ÎÊý£¨JAXB¶ÔÏ󣩣¬ÎÒÃǾͰÑËü·Åµ½Ó¦ÓÃÍø¸ñÖС£ÔÚ±¾ÀýÖУ¬ÎÒÃÇʹÓÃÁË¿ÉÒÔÄ£Ä⣨JavaºÍC++£©Java
Map APIºÍ£¨.NET£©Dictionary½Ó¿ÚµÄOracle Coherence£¨¼ûÁбí3£©¡£
Áбí3£ºÊ¹ÓÃMap API½«Java¶ÔÏó´æ´¢µ½Ó¦ÓÃÍø¸ñ
//put into grid
String itemKey = ii.getPartNum();
itemCache.put(itemKey, ii);
3. ÍÚ¾òÓ¦ÓÃÍø¸ñDZÁ¦
¶ÔÏó´æ´¢µ½Íø¸ñÖ®ºó£¬¼´¿ÉÒÔÄÚ´æJava¡¢C++»òC#¶ÔÏóµÄ·½Ê½¶ÁÈ¡Êý¾Ý¡£ÎÒÃÇ»¹¿ÉÒÔÀûÓÃÓ¦ÓÃÍø¸ñµÄһЩ¸ß¼¶¹¦ÄÜ£¬±ÈÈç¶ÔÄÚ´æ¶ÔÏóÊý¾ÝµÄ²¢Ðвéѯ²Ù×÷¡¢³ÖÐø²éѯ¡¢²¢Ðд¦ÀíµÈ¡£
ÔÚ±¾ÀýÖУ¬ÎÒÃÇÖ»¶ÔÍø¸ñÖеÄÊý¾Ý½øÐÐÒ»´Î¼òµ¥µÄ²éѯ¡£Áбí4ÖеĴúÂë¼´ÊÇÒ»¸ö¶ÔËùÓаüº¬"foo"µÄÏîµÄ¼òµ¥´¦ÀíÂß¼¡£
Áбí4£ºÍ¨¹ýÓ¦ÓÃÍø¸ñÖ´Ðв¢Ðвéѯ
public Object process(Entry en) {
Item i = (Item)en.getValue();
if (i != null) {
i.setComment(i.getComment() + " (modified)");
en.setValue(i);
}
return i;
}
¡and to invoke this¡
//Create a filter to find items in the grid
Filter theFilter = new LikeFilter("getProductName",
"%foo%");
//Pass in a filter and an operation (class)
Map result = itemCache.invokeAll(theFilter, new UpdateComment());
4. ÒÔʼþ·½Ê½Ö´ÐÐÍø¸ñ´¦ÀíÂß¼
ͨ¹ý¼òµ¥µÄJavaBean¼àÌýÆ÷ģʽ¼´¿ÉʹӦÓÃÍø¸ñÒÔʼþµÄ·½Ê½ÔËÐÐJavaÂß¼¡ª¡ªÔÚÍø¸ñÖÐдÈë»ò¶ÁÈ¡Êý¾Ýʱ¼´¿É´¥·¢¡£ÕâºÜÏñJavaµÄ¶Áд´¥·¢Æ÷»ò´æ´¢Á÷³Ì¡£Áбí5ÊÇÒ»¸öÏÔʾÍø¸ñÖеĸüÐÂÖµµÄʼþ¡£
Áбí5£ºÍø¸ñÖÐÊý¾Ý¸üкÍÌáȡʱ¼´´¥·¢Ê¼þ
public void entryUpdated(MapEvent me) {
Item i = (Item) me.getNewValue();
System.out.println("Updated Item: "
+ i.getComment());
}
5. Öع¹XML
¶ÔXMLÎĵµ½øÐд¦ÀíµÄÒµÎñ¹ý³ÌÖÕÓÚ½Ó½üÁËβÉù£¬ÏÖÔÚÎÒÃÇÒª´¢´æÍø¸ñÖеÄÊý¾Ý£¬»ò½«Æä¹²Ïí¸øÆäËüÓ¦Óûò·þÎñ¡£Èç¹ûÒª°ÑÊý¾Ý´æ´¢µ½¹ØϵÊý¾Ý¿âÖУ¬ÄÇôºǫ́¾Í»áÓйØϵӳÉä²Ù×÷¶ÔÏóÒÔ²»²ÎÓë·þÎñÓëÓ¦ÓÃÍø¸ñÖ®¼äµÄʵ¼Ê½»»¥µÄ·½Ê½´æÔÚ¡£
¶ÔÓÚÈκÎË÷Îï±êǩģʽµÄʵÏÖÀ´Ëµ£¬¶¼Òª×¢ÒâËùÓÐÏà¹ØµÄ·þÎñÆäÄ¿µÄ¶¼ÊÇʵÏÖÕâ¸öģʽËùÄÜ´øÀ´µÄÓŵ㡣×îÖÕÕâ¸ö¹ý³Ì»¹ÐèÒªÓëÎÞ·¨»òÉÐδ֧³ÖË÷Îï±êǩģʽµÄµÄ·þÎñ´«µÝÐÅÏ¢£¬Òò´Ë»¹ÐèҪͼ5ÖеÄ"ת»»ºÍ·ÓÉ"Õâ²½À´°ÑÊý¾Ý´®Ðл¯»ØXMLÔÚÏ߸ñʽ¡£ËäÈ»ÔÚÕâÖÖÇé¿öÏ»¹»á²úÉú±ß½ç³É±¾£¬µ«ÊDz½Öè1¡¢2¡¢3µÄЧÂÊÒѾÌá¸ßÁ˺ܶࡣ
Áбí6ÏÔʾµÄÊÇʹÓÃÓ¦ÓÃÍø¸ñAPIͨ¹ý¹Ø¼ü×ÖËÑË÷ËùÓжÔÏóºÍʹÓÃJAXB´´½¨XMLµÄ¼¼Êõ¡£ÕâÖ»ÊÇÒ»¸ö¼òµ¥µÄʹÓÃJava´´½¨XMLµÄʾÀý£¬µ«ÊÇ´ó¼Ò¿ÉÒÔ´ÓÖÐÊܵ½Æô·¢£¬Ê¹ÓÃXSLTÑùʽ±í£¬Í¨¹ý¶ÔÍø¸ñµÄ¶à´Î²éѯ»ñµÃÑùʽ±íËùÐèµÄÊý¾Ý¡£ÁíÍ⣬»¹¿ÉÒÔÀûÓÃÁ÷¼¼ÊõÖØÐÂ×é³É·ÖÉ¢µÄXML£¬±ÜÃâÍêÈ«¾ßÌ廯ÄÚ´æDOMÊ÷¡£
Áбí6£ºÖØ×é×é³ÉXMLÒÔת½»¸øÍⲿ·þÎñ
Filter theFilter = new LikeFilter("getProductName",
Constants.PRODUCT_FILTER);
Set filtered = itemCache.keySet(theFilter);
// Create a blank Purchase Order and populate it.
The non-cached // parts could come from elsewhere and
merged using XSLT
ObjectFactory of = new ObjectFactory();
PurchaseOrderType po = of.createPurchaseOrderType();
po.setItems(of.createItems());
// Loop over items and add to an object
for (Iterator it = filtered.iterator(); it.hasNext();)
{
Object key = it.next();
Item i = (Item) itemCache.get(key);
po.getItems().getItem().add(i);
}
×ÜÖ®£¬Ó¦ÓÃÍø¸ñ¿ÉÒÔ¼«´óµØÌá¸ß´¦Àí´óÁ¿Êý¾ÝµÄSOAÓ¦ÓõÄЧÂʺͿÉÀ©Õ¹ÐÔ¡£Ê¹ÓÃˮƽ¿ÉÀ©Õ¹µÄÓ¦ÓÃÍø¸ñ´æ´¢¡¢´¦Àí·þÎñÇëÇó¸ºÔØ£¬ÎÒÃÇÄÜÔڿɼÆÁ¿µÄÑÓ³Ù·¶Î§ÄÚ¶ÔÓ¦ÓýøÐÐÀ©Õ¹¡£¶øÇÒ£¬Í¨¹ýÓ¦ÓÃÍø¸ñµÄÇ¿´ó¹¦ÄÜ£¬ÎÒÃÇ»¹ÄÜÒÔÄÚ´æ¶ÁÈ¡ËÙ¶ÈÖ´Ðзֲ¼Ê½²¢ÐвéѯºÍ¸üС£Êý¾Ý±ä´óÖ®ºó£¬ÎÒÃÇÖ»ÒªÀ©Õ¹Íø¸ñ¼´¿ÉÊÊÓ¦ÐèÇó¡£ÕâÈÃÎÒÃÇͨ¹ý¸üÉÙµÄÓ²¼þ»ù´¡»ñµÃÁ˱ÈÒÔÍù¸ü¸ßµÄ´¦ÀíÄÜÁ¦£¬¶øÇÒ¿ÉÒÔ´ÓÒ»¿ªÊ¼¾Í´òºÃÀ©Õ¹µÄ»ù´¡£¬¶øÎÞÐëÿ´ÎÅö±ÚʱÖØÐÂÄóöÓ¦ÓõÄÉè¼Æͼֽ¡
|