ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一本视频,国产99视频精品免费视频36,√新版天堂资源在线资源 http://www.aygfsteel.com/jackylpz/category/8341.htmlç›®æ ‡ --> æ¯å¤©éƒ½è¦è±¡è¿‡òq´ä¸€æ øP¼åQï¼ zh-cn Fri, 02 Mar 2007 06:47:16 GMT Fri, 02 Mar 2007 06:47:16 GMT 60 谈谈蜂蜜的好处和¾ŸŽå®¹ç”¨æ³• http://www.aygfsteel.com/jackylpz/archive/2006/12/21/89304.html˜q‡å¹´ ˜q‡å¹´ Thu, 21 Dec 2006 08:12:00 GMT http://www.aygfsteel.com/jackylpz/archive/2006/12/21/89304.html http://www.aygfsteel.com/jackylpz/comments/89304.html http://www.aygfsteel.com/jackylpz/archive/2006/12/21/89304.html#Feedback 0 http://www.aygfsteel.com/jackylpz/comments/commentRss/89304.html http://www.aygfsteel.com/jackylpz/services/trackbacks/89304.html ¾ŸŽå®¹ä½›_“åQï¼èŠÞq²‰å’Œèœ‚èŠÞq²‰ 一ã€å¸¸é£Ÿèœ‚蜜å¯ä¿å¥åº·é•¿å¯? 蜂蜜是工蜂采èŠÞpœœåœ¨å°lä¸é…¿æˆã€‚æ ¹æ®é‡‡èœœå£èŠ‚ä¸åŒè€Œæœ‰æ˜¥ã€å¤ã€å†¬èœœä¹‹åˆ†ï¼Œä»¥å†¬èœœè´¨é‡æœ€å¥½ã€‚ä»Žé‡Žå¤–å¦‚æ ‘ä¸Šã€å²©‹zžç‰é‡‡å–者称为野蜂蜜åQŒåˆå«çŸ³èœœæˆ–岩蜜åQŒè´¨é‡æœ€å¥½ï¼Œä½†äñ”釿œ‰é™ï¼Œå› 而市é¢ä¸Šè§åˆ°çš„多是äh工养蜂所å–的蜂蜜。蜂蜜对äºÞZ½“å¥åº·çš„å¥½å¤„æ—©å·²äØ“äºÞZ»¬è®¤è¯†ã€‚《神农本è‰ç»ã€‹æŠŠèœœåˆ—为有益于人的上å“åQŒå¤å¸Œè…Šäºø™®¤ä¸ø™œ‚蜜是“天èµçš„½C¼ç‰©â€ï¼Œè€Œå°åº¦çš„《å 陀¾l》则说蜂蜜å¯ç›Šå¯¿å»¶å¹´ã€‚我国æ¢ä»£å医陶弘景说过åQšâ€œé“家之丸,多用蜂蜜åQŒä¿®ä»™ä¹‹äººï¼Œå•食蜂蜜åQŒè°“能长生。â€è¿™¿Uè¯´æ³•è™½æœ‰å¤¸å¼ ä¹‹å«Œï¼Œä½†ä»å……分说明了蜂蜜在è¥å…»åŠåŒ»ç–—上的作用ã€? è¥å…»åˆ†æžè¡¨æ˜ŽåQŒèœ‚蜜ä¸å«æœ‰å¤§çº¦35åQ…è‘¡è„ç³–åQ?0åQ…æžœ¾p–,˜q™ä¸¤¿U糖都å¯ä»¥ä¸¾l过消化作用而直接被äºÞZ½“æ‰€å¸æ”¶åˆ©ç”¨ã€‚èœ‚èœœè¿˜å«æœ‰ä¸Žäh体血清浓度相˜q‘çš„å¤šç§æ— 机ç›ï¼Œ˜q˜å«æœ‰ä¸€å®šæ•°é‡çš„¾l´ç”Ÿç´ B1ã€B2ã€B6åŠé“ã€é’™ã€é“œã€é”°ã€ç£·ã€é’¾½{‰ã€‚蜂蜜ä¸å«æœ‰æ·€¾_‰é…¶ã€è„‚肪酶ã€è{化酶½{‰ï¼Œæ˜¯é£Ÿç‰©ä¸å«é…¶æœ€å¤šçš„一¿U。酶是帮助äh体消化ã€å¸æ”¶å’Œä¸€¾pÕdˆ—物质代谢åŠåŒ–å¦å˜åŒ–的促进物。蜂蜜的气味芳香å¯å£åQŒä»Žè¥å…»å’Œä¿å¥äh值æ¥çœ‹ï¼Œä¸ä»…是滋补ã€ç›Šå¯¿åšgòq´ä¹‹å“ï¼Œåˆæ˜¯æ²È—…之良è¯ã€? èœ‚èœœä½œäØ“è¯ç”¨åQŒåœ¨ä¸å›½å·²æœ‰æ•°åƒòq´çš„历å²åQŒåŠŸæ•ˆè‰¯å¥½ã€‚æ˜Žä»£åŒ»å¦å®¶æŽæ—¶ç指出:“蜂蜜入è¯ä¹‹åŠŸæœ‰äº”ï¼šæ¸…çƒä¹Ÿï¼›è¡¥ä¸ä¹Ÿï¼›æ¶¦ç‡¥ä¹Ÿï¼›è§£æ¯’也;æ¢ç—›ä¹Ÿã€‚生则性凉åQŒæ•…能清çƒã€‚熟则性温åQŒæ•…能补ä¸ã€‚甘而和òq»I¼Œæ•…能解毒。柔而濡泽,故能润燥。缓å¯ä»¥åŽÀL€¥ï¼Œæ•…能æ¢å¿ƒè…¹è‚Œè‚‰åˆ›ä¼¤ä¹‹ç—›ï¼Œå’Œå¯ä»¥è‡´ä¸ï¼Œæ•…能调和百è¯åQŒè€Œä¸Žç”˜è‰åŒåŠŸã€‚â€? 在äÍ床上åQŒèœ‚蜜ä¸ä»…å¯ä»¥æ²»ç–—胃炎,˜q˜å¯ä»¥åœ¨èœ‚蜜ä¸åŠ ä¸ŠæŸäº›è¯ç‰©æ²»ç–—æºƒç–¡ç—…ã€‚å¦‚æ¯æ™¨ç”¨æ¸©å¼€æ°´å†²èœ‚蜜6克,½Iø™…¹æœæˆ–用丹å?5克,木香6克,炙甘è?克,煎æ±å†²èœ‚蜜æœåQŒå¯æ²È–—胃åäºŒæŒ‡è‚ æºƒç–¡ä»¥åŠå„¿Uèƒƒç—›ç—‡ã€‚äØ“ä»€ä¹ˆèœ‚èœœæœ‰æ¤ç–—效呢åQŸåŽŸæ¥èœ‚蜜是一¿U潜在的¼„±æ€§é£Ÿç‰©ï¼Œå®ƒæ‰€å«çš„é”°ç‰æ— 机ç›ï¼Œæœ‰ä¿ƒ˜q›é£Ÿç‰©çš„æ¶ˆåŒ–å’ŒåŒåŒ–作用,从而å‡è½»èƒƒè‚ 负担而缓解症状ã€? 若用蜂蜜30å…‹ï¼Œç‚’æž£ä»æœ«15克,åˆ?‹Æ¡å†²æœï¼Œæœ‰å¾ˆå¥½çš„å®å¿ƒå®‰ç¥žä½œç”¨åQŒå¯æ²Õd¿ƒæ…Œã€å¤±çœ ã€å¥å¿˜ã€å¤šæ¢¦ã€‚å¦‚åŠ å…¥äº”å‘³å?克,æŸåä»?克,˜q˜å¯ä»¥å¢žå¼ø™®°å¿†åŠ›åQŒæ”¹å–„智能ã€? 如果高血压ã€è‚è„ç—…ã€å¿ƒè„病患者,早晚½Iø™…¹é¥?æ¯èœ‚蜜水åQŒå¯¹ä¸Šè¿°ç–„¡—…凿œ‰ä¸€å®šçš„疗效。若用丹å‚ã€é¦–乌å„15å…‹ï¼Œæ°´ç…Žå–æ±åQŒå†²èœ‚蜜1汤匙内æœåQŒåŠŸæ•ˆæ›´ä½Ÿë€‚ç”¨èœ‚èœœ30克,¾_„¡›3å…‹ï¼ŒåŠ å‡‰å¼€æ°´è°ƒåŒ€åQŒæ¯å¤©æ—©æ™šå„æœ?‹Æ¡ï¼Œæœ‰è‰¯å¥½çš„æ¶¦è‚ 通便作用åQŒå°¤å…‰™€‚宜于è€å¹´äººã€ä½“å¼Þp€…ã€ç—…åŽæœ‰ä¾¿ç§˜çš„æ‚£è€…ã€? 当有呼å¸é“ç—…å˜ï¼Œå‡ºçŽ°é˜´è™šè‚ºç‡¥åQŒä¹…å’Ïx— ç—°æ—¶åQŒå¯ç”¨æ¬¾å†¬èб10克,癑ֈ15克,玉竹15å…‹ï¼Œç…Žæ°´å–æ±åQŒè°ƒå…¥èœ‚èœ?汤匙饮用。也å¯åœ¨½Iºå¿ƒé›ªæ¢¨ä¸æ”¾˜q›èœ‚蜜适é‡åQŒé𔿰´ç‚–æœï¼Œå¯æ¶ˆé™¤å› 气候干燥引èµïLš„咽喉òq²ç‡¥ã€å‘痒的感觉åQŒåƈ有利于气½Ž¡ä¸çš„ç§¯ç—°é¡ºåˆ©å’³å‡ºã€‚å› æ¤ï¼Œå‘¼å¸¾pÈ»Ÿç–„¡—…æ²Õd¥½ä¹‹åŽåQŒå¦‚能ç»å¸”R¥®æœèœ‚蜜,ä¸ä½†å¯é˜²æ¢æ—§ç—…å¤å‘,˜q˜æœ‰å¼ºå£®ä¹‹åŠŸã€? 对于生长期的儿童åQŒèœ‚蜜常是他们紧喜爱的食物,蜂蜜ä¸å«æœ‰é“å’Œå¶é…¸ï¼Œå¸¸åƒå¯ä»¥é¢„é˜²å’Œçº æ£å„¿ç«¥çš„è´«è¡€ã€? æ¤å¤–åQŒèœ‚蜜还有润肌白肤的作用åQŒç”±äºŽèœ‚蜜è¥å…ÖM¸°å¯Œè€Œå¤šæ ·åŒ–åQŒåˆæ˜“被äºÞZ½“叿”¶åˆ©ç”¨åQŒå¯¹äºŽçš®è‚¤æœ‰æ»‹æ¶¦ä½œç”¨åQŒå°¤å…¶æ˜¯å†¬å£æ°”候干燥时åQŒå¤šåƒèœ‚蜜能防æ¢çš®è‚¤çš²è£‚。很多高¾U§çš„化妆å“,是由蜂蜜æç‚¼è€Œæˆçš„,å¯è§å®ƒå¯¹çš®è‚¤æœ‰è‰¯å¥½çš„ä¿æŠ¤ä½œç”¨ã€‚å¦‚èƒ½é•¿æœŸå†…æœåŠå¤–敷外涂åQŒæœ‰åŠ©ç¾Žå®¹ï¼Œ˜q˜èƒ½ç›Šå¯¿å»¶å¹´ã€? 二ã€è‡ªåˆ¶èœ‚蜜é¢è†? 蜂蜜黄瓜é¢è†œåQˆç¾Žç™½é™¤çš±ï¼‰ å–鲜黄瓜æ±åР入奶¾_‰ã€èœ‚蜜适é‡åQŒé£Žæ²¹ç²¾æ•°æ»´è°ƒåŒ€åŽæ¶‚é¢ï¼Œ20åQ?0åˆ†é’ŸåŽæ´—净åQŒæˆ–ž®†é»„瓜洗净切薄片直接脓于脸部,å…ähœ‰æ¶¦è‚¤ã€å¢žç™½ã€é™¤çšÞqš„作用ã€? 蜂蜜白芷é¢è†œåQˆåŽ»æ–‘ç¾Žç™½ï¼‰ 1ã€å–白芷10克,白附å?0克,å…Þq ”¾l†æœ«åQŒåŠ æ°´å’Œèœ‚èœœé€‚é‡è°ƒå¥–æ•·é¢åQ?0åˆ†é’ŸåŽæ´—净åQŒæœ‰¼œ›çš±ã€æ¶ˆæ–‘ã€å¢žç™½ä½œç”¨ï¼Œé€‚用于é¢éƒ¨è‰²ç´ æ²‰ç€æˆ–黄è¤å¢žæ–‘患者ã€? 2ã€ææ–™ï¼šç™½èŠ·6克;蛋黄1个;蜂蜜 1大匙åQ›å°é»„瓜æ±?1ž®åŒ™åQ›æ©„榄æÑa3ž®åŒ™ã€? åšæ³•åQ? 1.先将白芷¾_‰æœ«åQŒè£…在碗ä¸ï¼ŒåŠ å…¥è›‹é»„æ…å‡åŒ€ã€? 2.å†åŠ å…¥èœ‚èœœå’Œž®é»„瓜æ±åQŒè°ƒåŒ€åŽæ¶‚æŠ¹äºŽè„æ€¸ŠåQŒçº¦äºŒå分钟åŽï¼Œå†ç”¨æ¸…水冲洗òq²å‡€ã€? 3.脸洗净åŽï¼Œç”¨åŒ–å¦†æ£‰æ²‘Ö–Š™„æ¦„æ²¹ï¼Œæ•·äºŽè„æ€¸ŠåQŒçº¦5分钟ã€? 4.ç„¶åŽå†ä»¥çƒæ¯›å·¾è¦†ç›–åœ¨è„æ€¸ŠåQŒæ¤æ—¶åŒ–妆棉ä¸éœ€æ‹¿æŽ‰ã€? 5.½{‰æ¯›å·‘Ö†·å´åŽåQŒå†æŠŠæ¯›å·‘Ö’ŒåŒ–妆‹‚‰å–下,‹z—净脔Rƒ¨å›_¯ã€? 蜂蜜çç ¾_‰é¢è†? 准备一个干净的å°ç“¶ååQŒå€’入大åŠç“¶çç 粉åQŒå†¾~“缓倒入蜂蜜åQŒè¾¹å€’è¾¹æ…æ‹ŒåQŒä‹É蜂蜜和çç 粉充分混åˆåQŒæ³¨æ„蜂蜜ä¸è¦å€’å¾—˜q‡å¤šåQŒè°ƒæˆç³Šçжå³å¯ã€‚è¿™æ ·é¢è†œå°±åšå¥½äº†ã€? 使用å‰ï¼Œå…ˆç”¨æ¸©æ°´æŠŠè„¸‹z—净åQŒç„¶åŽç”¨ž®æ£‰½{¾è˜¸ç€è°ƒå¥½å¾—é¢è†œå‡åŒ€å¾—涂在脸上,ä¸è¦å¤ªåŽšåQŒè–„薄一层å³å¯ï¼Œ˜q?-2ž®æ—¶åŽæ´—掉,å¯ä»¥ä½¿è„¸å…‰æ»‘åQŒæœ‰å…‰æ³½ã€? ¾U¢é…’蜂蜜é¢è†œåQˆç¾Žç™½æ»‹å…»ï¼‰ ¾U¢é…’ä¸çš„è‘¡è„é…’é…¸ž®±æ˜¯æžœé…¸åQŒèƒ½å¤Ÿä¿ƒ˜q›è§’è´¨æ–°åŸŽä»£è°¢ï¼Œæ·¡åŒ–è‰²ç´ åQŒè®©çš®è‚¤æ›´ç™½çš™å…‰æ»‘ã€‚èœ‚èœœå…·æœ‰ä¿æ¹¿å’Œæ»‹å…»çš„功效ã€? æ–ÒŽ³•åQšå°†ä¸€ž®æ¯¾U¢é…’åŠ?åˆ?勺å蜂蜜调至‹¹“ç¨ çš„çŠ¶æ€åŽåQŒå‡åŒ€çš„æ•·åœ¨è„¸ä¸Šï¼Œå…«åˆ†òq²åŽç”¨æ¸©æ°´æ´—òq²å‡€ã€? 注æ„åQšé…’¾_¾è¿‡æ•çš„äººæ…Žç”¨ï¼ èœ‚èœœåŒä»é¢è†œåQˆåŽ»æ–‘ï¼‰ 冬瓜ä»å†…å«è„‚肪æÑaé…¸ã€ç“œèƒºé…¸½{‰æˆåˆ†ï¼Œæœ‰æÙEæ–‘çš„åŠŸæ•ˆã€‚æ¡ƒä»æœ‰ä¸°å¯Œçš„维他命Eã€ç»´ä»–命B6åQŒä¸ä»…帮助肌肤抗氧化åQŒè¿˜èƒ½å‡ž®‘ç‚÷å¤–çº¿çš„ä¼¤å®Ÿë€‚èœ‚èœœçš„ä¿æ¹¿æ•ˆæžœå’Œæ»‹å…Èš„功效åQŒè®©é¢è†œçš„æ•ˆæžœæ›´å¥½ã€? æ–ÒŽ³•åQšå°†å†¬ç“œåä»ã€æ¡ƒä»æ™’òq²å޼‚¨æˆ¾l†åˆ†åQŒåР入适é‡èœ‚èœœæ··åˆæˆç²˜½E è†çŠÓž¼Œæ¯æ™šç¡å‰æ¶‚在斑点上,½W¬äºŒå¤©æ—©æ™¨æ´—净åQŒæ•·ä¸‰ä¸ªæ˜ŸæœŸåŽï¼Œæ–‘ç‚¹ä¼šé€æ¸å˜æÙEåQŒæ²»ç–—æ—¶è¦æ³¨æ„防晒ã€? 蜂蜜甘æÑaé¢è†œåQˆè¡¥æ°ß_¼‰ 蜂蜜一勺,甘æÑa一勺,对两勺水åQŒå……åˆ†æØœåˆï¼ŒåÏxˆé¢è†œè†ï¼Œä½¿ç”¨æ—¶è½»è½ÀL¶‚于脸部和颈部åQŒåÅžæˆè–„膜,20åQ?5分钟åŽå°å¿ƒå°†é¢è†œåŽÀLމå›_¯åQŒè¿™¿Ué¢è†œå¯ç”¨äºŽæ™®é€šã€å¹²ç‡¥æ€§è¡°èŽçš®è‚¤ï¼Œæ¯å‘¨1-2‹Æ¡ï¼Œ30åQ?5天一个疗½E‹ã€? 蜂蜜番茄é¢è†œåQˆç¾Žç™½é™¤çš±ï¼‰ å…ˆå°†ç•ªèŒ„åŽ‹çƒ‚å–æ±åQŒåР入适é‡èœ‚蜜和少讔R¢¾_‰è°ƒæˆè†çŠÓž¼Œæ¶‚于é¢éƒ¨ä¿æŒ20åQ?0分钟åQŒå…·æœ‰ä‹É皮肤滋润ã€ç™½å«©ã€æŸ”软的作用åQŒé•¿æœŸä‹É用还å…ähœ‰¼œ›æ–‘除皱和治疗皮肤痤疮ç‰åŠŸèƒ½ã€? èœ‚èœœæŸ æª¬é¢è†œåQˆé˜²æ™’) 生鸡蛋一个,蜂蜜一ž®åŒ™åQŒæŸ 檬åŠä¸ªï¼Œé¢ç²‰é€‚é‡åQŒæØœåˆåŽæ…拌æˆè†çŠÓž¼Œæ•·é¢åŽå…¥ç¡ï¼Œ½W¬äºŒå¤©ç”¨æ¸©æ°´‹z—å‡€ã€‚åšæŒä‹É用有较显著的防晒作用ã€? èœ‚èœœæ•·é¢ èœ‚èœœèƒ½ä¾›¾l™çš®è‚¤å…»åˆ†åÆˆèƒ½ä¿æŒè‚Œè‚¤å¼¹æ€§ï¼Œå› æ¤ä¹Ÿè¢«¿UîCؓ是“è¥å…ÀL•·é¢â€ã€‚å°†èœ‚èœœåŠ åœ¨é¢ç²‰æˆ–麦¾_‰ä¹‹ä¸ï¼Œæ…拌æˆç³ŠçŠÓž¼Œåœ¨æ´—å®Œè„¸åŽæ•·åœ¨è„¸éƒ¨ï¼Œ¾U¦è¿‡30分钟åŽç”¨æ¸©æ°´‹z—掉便å¯ä»¥äº†ã€‚å› èœ‚èœœä¸æœ‰å¼‚味åQŒå¯é€‚å½“åŠ å…¥å‡ æ»´æŸ æª¬æ±ä»¥å‡å°‘味é“ã€? 蜂蜜酸奶é¢è†œ(收敛毛å”) 1ã€èœ‚蜜和酸奶ä»?åQ?çš„æ¯”ä¾‹æ‹Œåœ¨ä¸€èµøP¼Œæ¶‚åœ¨è„æ€¸ŠåQ?5分钟åŽç”¨æ¸…æ°´‹z—去å›_¯åQŒæ¤‹ÆùN¢è†œæ˜¯æ”¶æ•›æ¯›å”çš„ã€? 2ã€é…¸ç‰›å¥¶ã€èœ‚èœœã€æŸ 檬æ±å?00毫克åQŒåŠ 5¾_’ç»´ç”Ÿç´ E调匀åQŒæ•·é¢åƈä¿ç•™15分钟,ç„¶åŽç”¨æ¸…æ°´æ´—å‡€ã€‚æ¤æ³•å¯ä¿ƒè¿›çš®è¡¨ä¸Šçš„æÈ»†èƒžè„±è½ï¼Œæ–°ç»†èƒžå†ç”Ÿï¼Œä»Žè€Œè¾¾åˆ°å¥¾ŸŽçš®è‚¤çš„目的ã€? 三ã€èœ‚蜜洗é¢ç¾Žå®Ò޳• å–æ–°é²œã€çº¯å‡€ã€æµ…è‰ŒÓ€ä¸æ˜“结晶的优质天然蜂蜜åQŒè£…å…¥å°å£ç¾Žå®¹ç”¨çŽÈ’ƒå®¹å™¨å†…(炎çƒå¤å£™åÀL”¾¾|®å†°½ŽÞp´®è—室内)ã€? æ¯æ¬¡‹z—脸æ—Óž¼Œå…ˆç”¨æ¸©æ°´æ¸…æ´—é¢ï¼Œç„¶åŽå€’出适é‡èœ‚蜜于手掌心åQŒåŒæŽŒå¯¹æ“ï¼ˆå¦‚æžœæ„Ÿè§‰å¤ªç¨ åQŒå¯ç”¨æŒ‡ž®–蘸å–少釿°´æ··åˆå‡åŒ€åQ‰ï¼Œç„¶åŽåŒæ‰‹åœ¨é¢éƒ¨å‘上å‘外打圈按摩,é‡ç‚¹åœ¨ä¸‹˜q°å‡ 个部ä½ç»†è‡´æŒ‰æ‘©ï¼šçœÆD§’鱼尾¾U¹å¤„åQŒç”¨åŒæ‰‹æŒ‡è‚šä½œçŽ¯çŠ¶æŒ‰æ‘©ï¼›é¢éƒ¨æŠ¬å¤´¾U¹ä½œåž‚直按摩åQ›éËE冀两侧环状按摩åQŒéËEæ¢è¾¹¾~˜ä½œä¸Šä¸‹æŒ‰æ‘©åQ›é¢ˆ™åšwƒ¨ä½ç”±ä¸‹è€Œä¸ŠæŒ‰æ‘©åQ›è€Ïxœµä¸¤ä¾§ä¸Šä¸‹æŒ‰æ‘©åQ›å£éƒ¨å››å‘¨ä½œå…«å—æˆ–å€’å…«å—æŒ‰æ‘©ã€‚按摩完毕,用温水清‹z—干净åQŒæ¶‚æ½è¥å…ÀLŠ¤è‚¤å“ã€? 蜂蜜‹z—é¢ä¸ä»…½Ž€å•方便,而且¾ŸŽå®¹æ•ˆæžœå分显著åQŒåšæŒ?周以上就能明显感觉到é¢éƒ¨‹z白¾l†è…»åQŒè‡ªç„¶çº¢æ¶¦ï¼Œå¯Œæœ‰å…‰æ³½åQŒçš±¾U¹å‡ž®‘。ä‹É用åŽè‚Œè‚¤æ— ç´§¾läh„ŸåQŒèˆ’适自ç„Óž¼Œé•¿æœŸä½¿ç”¨åQŒæ•ˆæžœå°¤å…¶æ˜Žæ˜¾ã€‚蜂蜜洗é¢è¿˜å¯¹çš®è‚¤è¿‡æ•ã€çš®è‚¤å¹²ç‡¥å…·æœ‰é˜²æ²ÀL•ˆæžœã€‚åŒæ—Óž¼Œæ¯å¤©æ—©æ™šå†…æœçŽ‹æµ†èœœï¼Œæ•ˆæžœæ›´å¥½ã€? å››ã€èœ‚蜜å‡è‚¥æ³• 蜂蜜是一¿U天然的è¥å…»å‰‚,它包å«å¯ä»¥ç‡ƒçƒ§äh体能é‡çš„良质¾p–分ã€ç»´ç”Ÿç´ 以åŠçŸ¿ç‰©è´¨ç‰ã€‚在一日三˜¡ä¸åQŒåªè¦åŠ å…¥ä¸€ç‚¹èœ‚èœœï¼Œž®±å¯ä»¥é¿å…脂肪在äºÞZ½“ä¸ç§¯èšä¸‹æ¥ã€? 蜂蜜å…ähœ‰ä¼˜è‰¯çš„æ€èŒæ•ˆæžœä¸Žè§£æ¯’效果åQŒå®ƒæœ‰åŠ©äºŽæŠŠä½“å†…¿U¯èšä¸‹çš„废物排出体外åQŒè®©å…¨èín的新陈代谢功能得到改善,使得那些ç”׃ºŽä¸èƒ½å¾ˆå¥½åœ°æ¶ˆè€—而在体内¿U¯èšä¸‹æ¥çš„å¤šä½™è„‚è‚ªä½œä¸ø™ƒ½é‡è€Œå¾—到燃烧。蜂蜜的¾p–分如能从胃˜qé€åˆ°è¡€æ¶²ä¸åQŒå°±ä¼šå˜æˆèƒ½é‡ï¼Œå¾ˆå¿«åœ°æ¶ˆé™¤ç–²åŠŸë€‚ç”±äºŽè¡€¾p–å€ég¸Šå‡ï¼Œ½Iø™…¹æ„Ÿä¹Ÿæ¶ˆå¤±äº†ã€? Aã€èœ‚èœœåŠ ç™½é†‹å‡è‚¥æ³•: 在日帔R¥®é£Ÿè§„律ä¸å˜çš„æƒ…况下,ž®†èœ‚蜜和白醋ä»?åQ?的比例食用,具体æ–ÒŽ³•如下åQ? 1ã€æ—©˜¡å‰20分钟½Iø™…¹å–? 2ã€ä¸˜¡å’Œæ™šé¤åŽç«‹åˆÕd– 注æ„åQšæŒ‘é€‰ç™½é†‹æ—¶è¦é€‰æ‹©¾l大¾cŸë€é«˜æ¢ã€é»„豆ç‰åŠ å·¥è€Œæˆçš„,ž®½é‡é¿å…嫿œ‰åŒ–å¦å“çš„åQŒåŒæ—¶å¾è®®ä¸è¦ä‹Éç”¨æžœé†‹ï¼Œå› äØ“æžœé†‹æ˜¯ä¿å¥é†‹åQŒç›¸å¯¹äºŽå‡è‚¥ž®±é€Šè‰²äº›ã€‚蜂蜜和白醋的比例å¯ä»¥æ ¹æ®ä¸ªäººéœ€è¦è°ƒæ•´ã€? Bã€æ—©é¥ä»¥å‰å¯ä»¥åœ¨å–æ°´æ—¶åŠ å…¥èœ‚èœœï¼Œåˆé¥ä¸Žæ™šé¥æ—¶åˆ™åƒž®‘é‡çš„粥。一般äh在åƒèœ‚蜜两天åŽå°±æ„Ÿè§‰åˆ°èín体轻æ¾ï¼Œå¿ƒæƒ…愉快。五天以åŽå¯ä»¥åƒé¢æ¡¾cÕd®¹æ˜“消化的东西åQŒç„¶åŽæ…¢æ…¢æ¢å¤åŽŸæ¥çš„饮食ã€?蜂蜜å¯ä»¥æ¶ˆé™¤ä½“内垃圾åQŒä‹ÉäºÞZ½“æ¢å¤åŽŸæ¥çš„æ–°é™ˆä»£è°¢åŠŸèƒ½ã€? 五ã€èœ‚蜜的其它¾ŸŽå®¹ç”¨æ³• 1 ã€ç”¨èœ‚蜜作è¥å…ÀL•·é¢å‰‚ æŠŠèœ‚èœœåŠ åœ¨é¢¾_‰ä¸åQŒæ‹Œæˆç³ŠçŠÓž¼Œ‹z—脸时敷于脸部,30分钟åŽç”¨æ¸©å¼€æ°´æ´—净。蜂蜜对于皮肤没有刺‹È€æ€§ï¼Œç”¨äºŽä¿å…»çš®è‚¤å分有效ã€? 2ã€èœ‚蜜å¯ä»¥æ¶ˆé™¤ç²‰åˆ? 把脸‹z—净åŽï¼Œç”¨æ£‰½{¾è˜¸ž®‘é‡èœ‚蜜åQŒç›´æŽ¥æ¶‚在粉åˆÞZ¸Šã€‚在ž®±å¯å‰ä‹É用,éžå¸¸æœ‰æ•ˆã€? 蜂蜜ä¸å«æœ‰å¤§é‡çš„¾l´ç”Ÿç´ ã€æ°}基酸åŠå¤š¿U活性物质,å¯è°ƒèŠ‚å†…åˆ†æ³Œã€æŠ‘åˆ¶çš®è„‚è…º˜q‡å¤šåˆ†æ³Œè„‚肪åQŒæ”¹å–„脂肪酸代谢òq¶æ”¹å–„血液åó@环ã€å¢žå¼ºæ¯›¾l†è¡€½Ž¡åŠŸèƒ½ï¼Œä¿ƒè¿›è¡€æ¶²å°†è¥å…»˜qé€åˆ°çš®è‚¤å±‚,而且蜂蜜˜q˜æœ‰å¾ˆå¥½çš„æŠ‘èŒæ€èŒä½œç”¨ï¼Œèƒ½æœ‰æ•ˆçš„æŠ‘制和æ€ç毛囊ä¸çš„细èŒã€‚å› æ¤ï¼Œèœ‚蜜ä¸ä½†ä¸ä¼šä¿ƒé•¿é’春痘,相å˜q˜èƒ½é˜²æ²»é’春痘,使皮肤å˜çš„光滑柔润ã€? 3ã€ç”¨èœ‚蜜制作冰æÊ޾_? é¦™çš‚å«æœ‰¼„±æ€§ï¼Œä¼šæ´—åŽÈš®è‚¤è„‚è‚ªï¼ŒåŠ ä¸€ç‚¹èœ‚èœœå°±å¯ä»¥è¡¥æ•‘ã€? 4ã€ç”¨èœ‚蜜按摩íw«ä½“ 蜂蜜的粘性å¯ä»¥é˜²æ¢çš®è‚¤æ°´åˆ†è’¸å‘。日晒而脱皮的åŽé¢ˆã€èƒŒéƒ¨ã€é¢å¤´ç‰å¤„,涂上蜂蜜轻轻按摩åQŒç«‹åŒ™ƒ½æ”¹å–„。蜂蜜ä¸åР入Й„榄æ²ÒŽˆ–å©´æÑaåQŒåœ¨é¢éƒ¨è½»è½»æŒ‰æ‘©åQŒèœ‚蜜便能渗入皮肤内。ä¸çŸ¥ä¸è§‰é—´ç”׃ºŽèœ‚蜜的滋å…ÖM¸ä½†ä¼šç”Þq²—¾p™å˜å¾—细嫩,而且˜q˜ä¼šå……满光泽ã€? 5ã€æÊŽå‰æ¶¦è‚? æ²æÊŽå‰ç”¨èœ‚蜜ä¿å…»ã€‚åœ¨æ²æÊŽä¹‹å‰åQŒç”¨èœ‚蜜涂全íw«ï¼Œž®¤å…¶æ˜¯è„šåº•ã€è†ç›–。手肘ç‰éƒ¨ä½è¦å¤šä¸€ç‚V€?0分钟åŽï¼Œ˜q›å…¥‹¹´çŽ×‹¹¸æˆöåQŒç„¶åŽå†ç”¨é¦™çš‚æˆ–æ²æÊŽéœ²æ´—ä¸€é,‹z—完澡åŽåQŒä¼šè§‰å¾—å…¨èín滑腻如å‡è„‚ã€? 6ã€èœ‚蜜美å‘ç´ ç”¨ä¸€å‹ø™œ‚èœœä¸ŽåŠæ¯ç‰›å¥¶æ··åˆåœ¨ä¸€èµøP¼Œ‹z—完头åŽç”¨è¿™¿UæØœåˆæ¶²åœ¨å¤´ä¸ŠæŒ‰æ‘©ï¼Œ˜q?5åˆ†é’ŸåŽæ´—净åQŒå¤´å‘会å˜å¾—光滑ã€? 7ã€èœ‚蜜美å®Ò޶² Aã€å–蜂蜜åŠ?倿°´½E€é‡ŠåŽæ¯å¤©æ¶‚æ•·é¢éƒ¨åQŒç„¶åŽç”¨æ‰‹è½»è½ÀLŒ‰æ‘©ï¼Œå¯ä‹É皮肤光派l†å«©åQŒå‡ž®‘çš±¾U¹ï¼Œä¿æŒè‡ªç„¶¾U¢æ¶¦åQŒè¿˜èƒ½é˜²æ¢æ–°çš„çš±¾U¹å‡ºçްã€? Bã€èœ‚èœ?0克,一个鸡蛋清åQŒæ…æ‹ŒåŽæ”„¡“¶ä¸å¯†ž®å¤‡ç”¨ï¼Œå¯ä‹É用一周左åŸë€‚å¤å£æ”¾åœ¨å†°½Ž±å†…ä¿å˜åQŒç”¨æ—¶å€’少许在手掌ä¸ï¼Œå‡åŒ€æ¶‚于é¢éƒ¨åQŒä¿ç•™åŠž®æ—¶æ¸…æ°´‹z—净åQŒèƒ½ç´§ç¾ƒé¢éƒ¨çš®è‚¤åQŒæ¶ˆé™¤çš±¾U¹ï¼Œå¢žåŠ è¥å…»åQŒæ´å‡€ã€å¢žç™½çš®è‚¤ã€‚早晚å„一‹Æ¡ï¼ŒæŒç®‹ä¸€ä¸ªæœˆåŽï¼Œé¢éƒ¨çš®è‚¤å…‰æ»‘ã€ç»†è……R€ç™½å‡€ã€é•¿æœŸä‹É用效果更佟ë€? 8ã€è‡ªåˆ¶èœ‚蜜é¢éœ? Aã€å°†è‹ÒŽžœç…®ç†ŸåQŒæ£çƒ‚ï¼ŒåŠ å…¥èœ‚èœœä¸Žäã^è„‚ï¼Œåˆ¶æˆæ¶¦è‚¤é¢è†œè†æ•·é¢ï¼Œé•¿æœŸä½¿ç”¨å¯ä×o肤æ´å¦‚玉ã€? Bã€èœ‚èœ?0å…‹ï¼ŒæŸ æª¬æ±ä¸€æ±¤åŒ™åQŒç”œæä»åŠæ±¤åŒ™ï¼Œè›‹æ¸…两个åQŒæ·€¾_‰é€‚é‡åQŒåˆ¶æˆèÊYè†ï¼Œæ—©æ™šæ“¦ç”¨åQŒå¯æ»‹æ¶¦çš®è‚¤åQŒå¢žåŠ å¼¹æ€§ã€? å…ã€èœ‚蜜疗法治感冒 æˆ‘ä»¬ä¿—ç§°çš„â€œä¼¤é£Žâ€æˆ–“感冒â€ï¼Œ¾pÀLŒ‡é¼…R€å’½ã€å–‰éƒ¨çš„æ„ŸæŸ“(上呼å”R“感染)åQŒæ˜¯æœ€å¸¸è§çš„呼å”R“æ„ŸæŸ“æ€§ç–¾ç—…ï¼Œå› ç—…åŽŸä½“ä¸åŒè€Œåˆ†ä¸ºç—…毒性和¾l†èŒæ€§ä¸¤å¤§ç±»ã€‚病毒性å 上感å‘ç—…çš?0%以上åQŒä¸€èˆ¬é€šè¿‡å«æœ‰ç—…毒的飞沫或¾l污染的用具˜q›è¡Œä¼ æ’åQ›ç»†èŒæ€§æ„ŸæŸ“å¯ç›´æŽ¥æ„ŸæŸ“或ç‘ôå‘于病毒感染之åŽåQŒä»¥æº¶è¡€æ€§é“¾çƒèŒä¸ºæœ€å¸¸è§ã€‚äÍ床以å‘çƒã€æ¶å¯’ã€å¤´ç—›ã€éËEå¡žã€æµæ¶•ã€å’³å—½ã€å’½ç—›ã€å£°å˜¶ç‰ä¸ºåŸºæœ¬ç‰¹å¾ã€‚å…¶æ²È–—æ–šw’ˆæ˜¯åº”˜q…速å‡è½È—…情ã€ç¾ƒçŸç—…½E‹ã€é¢„防åˆòq¶ç—‡ã€‚蜂产å“åŠå…¶é…æ–¹å¯ÒŽ¤æœ‰è‰¯å¥½çš„é¢„é˜²ä½œç”¨ã€? 1ã€èœœå§œæ„Ÿå†’饮 é…æ–¹åQšèœ‚蜜ã€å§œæ±å„适é‡ã€? 用法åQšå°†èœ‚蜜ã€å§œæ±æŒ‰1âˆ?的比例é…刉™¥®ç”¨ã€? ä¸ÀL²»åQšæ™®é€šæ„Ÿå†’ã€? 2ã€æŸ 檬蜜èŒ? é…æ–¹åQšèœ‚èœ?00å…‹ï¼ŒæŸ æª¬1个ã€? 用法åQšå°†æŸ 檬榨æ±åQŒæº¶è§£åœ¨800æ¯«å‡æ²¸æ°´ä¸ï¼Œä¸?00å…‹èœ‚èœœæØœåˆï¼Œä½œäØ“1天的用é‡ã€? ä¸ÀL²»åQšæµè¡Œæ€§æ„Ÿå†’或普通型感冒ã€? 3ã€é²œèœœçº¢èŒ? é…æ–¹åQšèœ‚èœ?0克,¾U¢èŒ¶è‹¥å¹²ã€? 用法åQšèœ‚èœ?0克冲‹¹“红茉™¥®ç”¨ã€? ä¸ÀL²»åQšæµè¡Œæ€§æ„Ÿå†’或普通型感冒ã€? 4ã€è’œèœœé¥® é…æ–¹åQšèœ‚蜜ã€å¤§è’œå„适é‡ã€? 用法åQšå°†å¤§è’œå‰¥çš®ã€æ´—净ã€ç£¨¼„Žï¼ŒåŠ ç‰é‡èœ‚èœœæØœåŒ€åQ›æ—¥æœ?‹Æ¡ï¼Œæ¯æ¬¡1匙蒜蜜,用温开水冲æœã€? ä¸ÀL²»åQšæµè¡Œæ€§æ„Ÿå†’ã€? 5ã€ç™½èŠèœœèƒ¶èŒ¶ é…æ–¹åQšèœ‚蜜ã€èœ‚胶水溶液(当地蜂äñ”å“å…¬å¸è´ä¹?å„适é‡åQŒæç™½èŠ1å…‹ã€? 用法åQ𿲏æ°?æ¯å†²æ³¡æç™½èŠåQŒå¾…水温é™è‡³40℃时兑入蜂蜜15å…‹ã€èœ‚胶水溶液5~10æ»´æØœåˆåŽä»£èŒ¶é¥®ã€? ä¸ÀL²»åQšä¸»æ²ÀL„Ÿå†’ã€? 6ã€èœœå¥¶æ„Ÿå†’茶 é…æ–¹åQšèœ‚èœ?5克,牛奶1æ¯ã€? 用法åQšå°†é²œç‰›å¥¶ç…®æ²¸ï¼Œå¾…温度é™è‡?0â„ƒæ—¶åŠ å…¥èœ‚èœœé¥®ä¹‹åQŒæ—¥æœ?‹Æ¡ã€? ä¸ÀL²»åQšæ„Ÿå†’ã€? 7ã€é’©è—¤èœœèŒ? é…æ–¹åQšèœ‚蜜ã€é’©è—¤å„15克,¾l¿èŒ¶1å…‹ã€? 用法åQšé’©è—¤åŠ æ°?00毫å‡åQŒç…®æ²?分钟åQŒåŽ»æ¸£ï¼ŒåŠ å…¥èœ‚èœœä¸Žç»¿èŒÓž¼›æ—¥æœ1剂,åˆ?‹Æ¡æ¸©æœã€? ä¸ÀL²»åQšæµè¡Œæ€§æ„Ÿå†’ã€? 说明åQšæµè¡Œæ€§æ„Ÿå†’由病毒引è“våQŒè¡¨çŽîCØ“é¼Õd¡žã€å–·åšã€å’½ç—›ã€å£°å˜¶ã€å’³å—½ã€å‘烧ã€å¤´ç—›ã€èín痛,外周血白细胞凞®‘ç‰åQŒåƈ有æµè¡Œè¶‹åŠÑ€? 普通感冒å³â€œä¼¤é£Žâ€ï¼Œå¤šç”±ç—…毒引è“våQŒå…¨íw«è¡¨çŽ°è¾ƒ‹¹è¡Œæ€§æ„Ÿå†’轻微,如头痛ã€ç‰™ç—›ã€å‘çƒç‰ã€? 七ã€èœ‚èœœåŠ ç‰›å¥¶¾~“è§£æ¶ˆé™¤ç—›ç» æ¯æ™šç¡å‰å–一æ¯åР䏀勸™œ‚蜜的çƒç‰›å¥Óž¼Œå›_¯¾~“解甚至消除痛ç»ä¹‹è‹¦ã€‚由于牛奶å«é’‘Ö¤šåQŒè€Œèœ‚èœœå«æœ‰ä¸°å¯Œçš„é•ã€‚è€Œç ”½I¶è¡¨æ˜Žï¼Œé’‘Ö¯¹¼œžç»å†²åŠ¨çš„ä¼ å¯¹{€è¡€æ¶²çš„å‡å›º˜q‡ç¨‹éƒ½è“vé‡è¦çš„作用,它能¾~“和情çÈAã€æŠ‘åˆ¶ç–¼ç—›ã€é˜²æ¢æ„ŸæŸ“åŠå‡å°‘¾l期å¤Þp¡€é‡ï¼›é•å¯¹å¤§è„‘ä¸æž¢¼œžç»å…ähœ‰é•‡é™ä½œç”¨åQŒèƒ½è°ƒèŠ‚å¿ƒç†åQŒæ¶ˆé™¤ç´§å¼ 心ç†ï¼Œå‡è½»åŽ‹åŠ›ã€? ˜q™é‡Œå†å¤šè¯´ä¸€ç‚¹ï¼š å¦ä¸€ä¸ªå¯¹ä»˜ç—›¾lçš„å¯¹ç–æ˜¯æœç”¨ç»´ç”Ÿç´ ¾c»è¯ç‰©ã€‚Bæ—ç»´ç”Ÿç´ åQŒç‰¹åˆ«æ˜¯B6对ç»å‰ç´§å¼ 症有显著疗效,它能½E›_®šæƒ…çÈAåQŒå¸®åŠ©ç¡çœ ,使äh¾_‘ÖŠ›å……æ²›åQŒåƈ能å‡è½»è…¹éƒ¨ç–¼ç—›ã€‚香蕉ä¸å«æœ‰è¾ƒå¤šçš„Bæ—ç»´ç”Ÿç´ åQŒç—›¾lçš„JMä¸å¦¨å¤šåƒä¸€äº›ï¼Œè¯•试看有没有效果ã€?br /> ä¸å›½åå¤§èœ‚èœœæ¦œä¸æ¦?1 汪æ°èœœèœ‚å›?ä¸å›½é©°åå•†æ ‡,江西çœå牌äñ”å“? 2 å† ç”Ÿå›?(ä¸å›½é©°åå•†æ ‡,国家特大型集å›? 3 百花ç‰?全国蜂äñ”å“龙头ä¼ä¸šï¼ŒåŒ—京å牌) 4 è€èœ‚å†?全国知å蜂蜜å“牌) 5 åšå£«ç‰?全国知å蜂蜜å“牌) 6 蜂之è¯?全国知å蜂蜜å“牌) 7 é¢å›ç‰?全国知å蜂蜜å“牌) 8 è€å±±ç‰?全国知å蜂蜜å“牌) 9 天éªèŠÞq‰Œ(全国知å蜂蜜å“牌) 10 天新蜂äñ”å“?img src ="http://www.aygfsteel.com/jackylpz/aggbug/89304.html" width = "1" height = "1" /> ]]> 使用 Spring 更好地处ç?Struts 动作 http://www.aygfsteel.com/jackylpz/archive/2006/04/16/41354.html˜q‡å¹´ ˜q‡å¹´ Sun, 16 Apr 2006 10:24:00 GMT http://www.aygfsteel.com/jackylpz/archive/2006/04/16/41354.html http://www.aygfsteel.com/jackylpz/comments/41354.html http://www.aygfsteel.com/jackylpz/archive/2006/04/16/41354.html#Feedback 0 http://www.aygfsteel.com/jackylpz/comments/commentRss/41354.html http://www.aygfsteel.com/jackylpz/services/trackbacks/41354.html 使用 Spring 更好地处ç?nbsp;Struts 动作
ä¸‰ç§æ•´åˆ Struts 应用½E‹åºä¸?nbsp;Spring 的方å¼?/u> ¾U§åˆ«: ä¸çñ” George Franciscus , è´Ÿè´£äº? Nexcel 2005 òq?nbsp;11 æœ?nbsp;03 æ—?br /> Struts Recipes çš„åˆè‘—è€?nbsp;George Franciscus ž®†ä»‹¾lå¦ä¸€ä¸ªé‡å¤§çš„ Struts 整刽Hé—¨ ?? ˜q™æ¬¡æ˜¯å°† Struts 应用½E‹åºå¯¼å…¥ Spring æ¡†æž¶ã€‚è¯·è·Ÿéš GeorgeåQŒä»–ž®†å‘您展½Cºå¦‚何改å?nbsp;Struts 动作åQŒä‹É得管ç?nbsp;Struts 动作ž®±åƒ½Ž¡ç† Spring beans é‚£æ ·ã€‚ç»“æžœæ˜¯ä¸€ä¸ªå¢žå¼ºçš„ web 框架åQŒè¿™ä¸ªæ¡†æž¶å¯ä»¥æ–¹ä¾¿åœ°åˆ©ç”¨ Spring AOP 的优åŠÑ€?br />您肯定已¾lå¬è¯´è¿‡æŽ§åˆ¶åè{ (IOC) 设计模å¼åQŒå› 为很长一ŒD‰|—¶é—´ä»¥æ¥ä¸€ç›´åœ¨‹¹ä¼ 关于它的信æ¯ã€‚如果您在ä“Q何功能ä¸ä½¿ç”¨˜q?nbsp;Spring 框架åQŒé‚£ä¹ˆæ‚¨ž®ÞqŸ¥é“其原ç†çš„作用。在本文ä¸ï¼Œæˆ‘åˆ©ç”¨è¿™ä¸€åŽŸç†æŠŠä¸€ä¸?nbsp;Struts 应用½E‹åºæ³¨å…¥ Spring 框架åQŒæ‚¨ž®†äº²íw«ä½“会到 IOC 模å¼çš„强大ã€?br /> ž®†ä¸€ä¸?nbsp;Struts 应用½E‹åºæ•´åˆ˜q?nbsp;Spring 框架å…ähœ‰å¤šæ–¹é¢çš„优点。首先,Spring æ˜¯äØ“è§£å†³ä¸€äº›å…³äº?nbsp;JEE 的真实世界问题而设计的åQŒæ¯”如夿‚性ã€ä½Žæ€§èƒ½å’Œå¯‹¹‹è¯•性,½{‰ç‰ã€‚第二,Spring 框架包å«ä¸€ä¸?nbsp;AOP 实现åQŒå…许您ž®†é¢å‘æ–¹é¢æŠ€æœ¯åº”ç”¨äºŽé¢å‘对象的代ç 。第三,一些ähå¯èƒ½ä¼šè¯´ Spring æ¡†æž¶åªæœ‰å¤„ç† Struts æ¯?nbsp;Struts 处ç†è‡ªå·±å¥½ã€‚但是这是观炚w—®é¢˜ï¼Œæˆ‘æ¼”½CÞZ¸‰¿Uå°† Struts 应用½E‹åºæ•´åˆåˆ?nbsp;Spring 框架的方法åŽåQŒå…·ä½“由您自己决定ä‹É用哪一¿Uã€?br /> 我所演示的方法都是执行è“væ¥ç›¸å¯¹ç®€å•çš„åQŒä½†æ˜¯å®ƒä»¬å´å…ähœ‰æ˜Žæ˜¾ä¸åŒçš„优ç‚V€‚我为æ¯ä¸€¿U方法创å»ÞZº†ä¸€ä¸ªç‹¬ç«‹è€Œå¯ç”¨çš„例ååQŒè¿™æ äh‚¨ž®±å¯ä»¥å®Œå…¨ç†è§£æ¯¿U方法。请å‚阅 ä¸‹è² éƒ¨åˆ†èŽ·å¾—å®Œæ•´ä¾‹åæºä»£ç 。请å‚阅 å‚è€ƒèµ„æ–™ï¼Œä¸‹è² Struts MVC å’?nbsp;Spring 框架ã€?br />
ä¸ÞZ»€ä¹?nbsp;Spring ˜q™ä¹ˆäº†ä¸èµøP¼Ÿ
Spring 的创立è€?nbsp;Rod Johnson 以一¿U批判的眼光看待 Java™ ä¼ä¸šè½¯äšgå¼€å‘,òq¶ä¸”æè®®å¾ˆå¤šä¼ä¸šéšùN¢˜éƒ½èƒ½å¤Ÿé€šè¿‡æˆ˜ç•¥åœîC‹Éç”?nbsp;IOC 模å¼åQˆä¹Ÿ¿UîC½œä¾èµ–注入åQ‰æ¥è§£å†³ã€‚当 Rod 和一个具有奉献精¼œžçš„开放æºç å¼€å‘者团队将˜q™ä¸ªç†è®ºåº”用于实跉|—¶åQŒç»“果就产生äº?nbsp;Spring 框架。简a€ä¹‹ï¼ŒSpring 是一个轻型的容器åQŒåˆ©ç”¨å®ƒå¯ä»¥ä½¿ç”¨ä¸€ä¸ªå¤–éƒ?nbsp;XML é…置文äšg方便地将对象˜qžæŽ¥åœ¨ä¸€èµ—÷€‚æ¯ä¸ªå¯¹è±¡éƒ½å¯ä»¥é€šè¿‡æ˜„¡¤ºä¸€ä¸?nbsp;JavaBean 属性收åˆîC¸€ä¸ªåˆ°ä¾èµ–对象的引用,留给您的½Ž€å•ä“QåŠ¡å°±åªæ˜¯åœ¨ä¸€ä¸?nbsp;XML é…置文äšgä¸æŠŠå®ƒä»¬˜qžæŽ¥å¥½ã€?br />
IOC å’?nbsp;Spring
IOC 是一¿Uä‹É应用½E‹åºé€»è¾‘外在化的设计模å¼åQŒæ‰€ä»¥å®ƒæ˜¯è¢«æ³¨å…¥è€Œä¸æ˜¯è¢«å†™å…¥å®¢æˆ·æœÞZ»£ç ä¸ã€‚å°† IOC 与接å£ç¼–½E‹åº”用结åˆï¼Œž®±åƒ Spring æ¡†æž¶é‚£æ ·åQŒäñ”生了一¿U架构,˜q™ç§æž¶æž„能够å‡å°‘客户机对特定实现逻辑的ä¾èµ–。请å‚阅 å‚考资æ–?nbsp;了解更多关于 IOC å’?nbsp;Spring 的信æ¯ã€?br /> ä¾èµ–注入是一个强大的ç‰ÒŽ€§ï¼Œä½†æ˜¯ Spring 框架能够æä¾›æ›´å¤šç‰ÒŽ€§ã€‚Spring 支æŒå¯æ’拔的事务½Ž¡ç†å™¨ï¼Œå¯ä»¥¾l™æ‚¨çš„äº‹åŠ¡å¤„ç†æä¾›æ›´òq¿æ³›çš„选择范围。它集æˆäº†é¢†å…ˆçš„æŒä¹…æ€§æ¡†æžÓž¼Œòq¶ä¸”æä¾›ä¸€ä¸ªä¸€è‡´çš„异常层次¾l“构。Spring ˜q˜æä¾›äº†ä¸€¿Uä‹É用é¢å‘æ–¹é¢ä»£ç 代替æ£å¸¸çš„é¢å‘对象代ç çš„ç®€å•æœºåˆ¶ã€?br /> Spring AOP å…许您ä‹É用拦截器 在一个或多个执行点上拦截应用½E‹åºé€»è¾‘ã€‚åŠ å¼ºåº”ç”¨ç¨‹åºåœ¨æ‹¦æˆªå™¨ä¸çš„æ—¥å¿—记录逻辑会äñ”生一个更å¯è¯»çš„ã€å®žç”¨çš„代ç 基础åQŒæ‰€ä»¥æ‹¦æˆªå™¨òq¿æ³›ç”¨äºŽæ—¥å¿—记录。您很快ž®×ƒ¼šçœ‹åˆ°åQŒäØ“äº†å¤„ç†æ¨ªåˆ‡å…³æ³¨ç‚¹åQŒSpring AOP å‘布了它自己的拦截器åQŒæ‚¨ä¹Ÿå¯ä»¥ç¼–写您自己的拦截器ã€?br />
æ•´åˆ Struts å’?nbsp;Spring
ä¸?nbsp;Struts ç›æ€¼¼åQŒSpring å¯ä»¥ä½œäؓ一ä¸?nbsp;MVC å®žçŽ°ã€‚è¿™ä¸¤ç§æ¡†æž¶éƒ½å…·æœ‰è‡ªå·Þqš„优点和缺点,ž®½ç®¡å¤§éƒ¨åˆ†ähåŒæ„ Struts åœ?nbsp;MVC æ–šw¢ä»ç„¶æ˜¯æœ€å¥½çš„。很多开å‘团队已¾lå¦ä¼šåœ¨æ—‰™—´ç´§è¿«çš„æ—¶å€™åˆ©ç”?nbsp;Struts ä½œäØ“æž„é€ é«˜å“质软äšg的基¼‹€ã€‚Struts å…ähœ‰å¦‚æ¤å¤§çš„æŽ¨åŠ¨åŠ›ï¼Œä»¥è‡³äºŽå¼€å‘å›¢é˜Ÿå®æ„¿æ•´å?nbsp;Spring æ¡†æž¶çš„ç‰¹æ€§ï¼Œè€Œä¸æ„¿æ„è½¬æ¢æˆ?nbsp;Spring MVC。没必覘q›è¡Œè½¬æ¢å¯ÒŽ‚¨æ¥è¯´æ˜¯ä¸€ä¸ªå¥½æ¶ˆæ¯ã€‚Spring æž¶æž„å…许您将 Struts ä½œäØ“ Web 框架˜qžæŽ¥åˆ°åŸºäº?nbsp;Spring 的业务和æŒä¹…层。最åŽçš„¾l“æžœž®±æ˜¯çŽ°åœ¨ä¸€åˆ‡æ¡ä»‰™ƒ½å…·å¤‡äº†ã€?br /> 在接下æ¥çš„å°½Hé—¨ä¸ï¼Œæ‚¨å°†ä¼šäº†è§£åˆ°ä¸‰ç§ž®?nbsp;Struts MVC æ•´åˆåˆ?nbsp;Spring 框架的方法。我ž®†æ½Cºæ¯¿U方法的¾~ºé™·òq¶ä¸”å¯Òޝ”它们的优ç‚V€?nbsp;一旦您了解到所有三¿U方法的作用åQŒæˆ‘ž®†ä¼šå‘您展示一个ä×o人兴奋的应用½E‹åºåQŒè¿™ä¸ªç¨‹åºä‹Éç”¨çš„æ˜¯è¿™ä¸‰ç§æ–ÒŽ³•䏿ˆ‘最喜欢的一¿Uã€?br />
三个ž®çªé—?/h4>
接下æ¥çš„æ¯ç§æ•´åˆæŠ€æœ¯ï¼ˆæˆ–者çªé—¨ï¼‰éƒ½æœ‰è‡ªå·±çš„优点和特点。我å爱其ä¸çš„一¿U,但是我知é“这三ç§éƒ½èƒ½å¤ŸåŠ æ·±æ‚¨å¯?nbsp;Struts å’?nbsp;Spring çš„ç†è§£ã€‚在处ç†å„ç§ä¸åŒæƒ…况的时候,˜q™å°†¾l™æ‚¨æä¾›ä¸€ä¸ªå¹¿é˜”的选择范围。方法如下:
使用 Spring çš?nbsp;ActionSupport ¾cÀL•´å?nbsp;Structs
使用 Spring çš?nbsp;DelegatingRequestProcessor 覆盖 Struts çš?nbsp;RequestProcessor ž®?nbsp;Struts Action ½Ž¡ç†å§”托¾l?nbsp;Spring 框架 装è²åº”用½E‹åºçŽ¯å¢ƒ æ— è®ºæ‚¨ä‹É用哪¿U技术,都需è¦ä‹Éç”?nbsp;Spring çš?nbsp;ContextLoaderPlugin ä¸?nbsp;Struts çš?nbsp;ActionServlet è£…è² Spring 应用½E‹åºçŽ¯å¢ƒã€‚å°±åƒæ·»åŠ ä“Q何其他æ’ä»¶ä¸€æ øP¼Œ½Ž€å•åœ°å‘æ‚¨çš?nbsp;struts-config.xml æ–‡äšgæ·ÕdŠ è¯¥æ’ä»Óž¼Œå¦‚下所½Cºï¼š
<plug-in className=
"org.springframework.web.struts.ContextLoaderPlugIn" >
<set-property property=
"contextConfigLocation" value="/WEB-INF/beans.xml" />
</plug-in>
å‰é¢å·²ç»æåˆ°˜q‡ï¼Œåœ?nbsp;ä¸‹è² éƒ¨åˆ†åQŒæ‚¨èƒ½å¤Ÿæ‰‘Öˆ°˜q™ä¸‰ä¸ªå®Œå…¨å¯ä½¿ç”¨çš„例å的完整æºä»£ç 。æ¯ä¸ªä¾‹å都ä¸ÞZ¸€ä¸ªä¹¦¾cæœç´¢åº”ç”¨ç¨‹åºæä¾›ä¸€¿Uä¸åŒçš„ Struts å’?nbsp;Spring çš„æ•´åˆæ–¹æ³•。您å¯ä»¥åœ¨è¿™é‡Œçœ‹åˆîC¾‹åçš„è¦ç‚¹åQŒä½†æ˜¯æ‚¨ä¹Ÿå¯ä»¥ä¸‹è½½åº”用程åºä»¥æŸ¥çœ‹æ‰€æœ‰çš„¾l†èŠ‚ã€?br />
½Hé—¨ 1. 使用 Spring çš?nbsp;ActionSupport
手动创å¾ä¸€ä¸?nbsp;Spring 环境是一¿Uæ•´å?nbsp;Struts å’?nbsp;Spring 的最直观的方å¼ã€‚äØ“äº†ä‹É它å˜å¾—æ›´½Ž€å•,Spring æä¾›äº†ä¸€äº›å¸®åŠ©ã€‚äØ“äº†æ–¹ä¾¿åœ°èŽ·å¾— Spring 环境åQŒorg.springframework.web.struts.ActionSupport ¾cÀL供了一ä¸?nbsp;getWebApplicationContext() æ–ÒŽ³•。您所åšçš„åªæ˜¯ä»?nbsp;Spring çš?nbsp;ActionSupport è€Œä¸æ˜?nbsp;Struts Action ¾cÀL‰©å±•您的动作,如清å?nbsp;1 所½Cºï¼š æ¸…å• 1. 使用 ActionSupport æ•´åˆ Struts
package ca.nexcel.books.actions;
import java.io.IOException ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.springframework.context.ApplicationContext;
import org.springframework.web.struts.ActionSupport;
import ca.nexcel.books.beans.Book ;
import ca.nexcel.books.business.BookService;
public class SearchSubmit extends ActionSupport { |(1)
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException , ServletException {
DynaActionForm searchForm = (DynaActionForm) form;
String isbn = (String ) searchForm.get("isbn" );
//the old fashion way
//BookService bookService = new BookServiceImpl();
ApplicationContext ctx =
getWebApplicationContext(); |(2)
BookService bookService =
(BookService) ctx.getBean("bookService" ); |(3)
Book book = bookService.read(isbn.trim());
if (null == book) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,new ActionError
("message.notfound" ));
saveErrors(request, errors);
return mapping.findForward("failure" ) ;
}
request.setAttribute("book" , book);
return mapping.findForward("success" );
}
}
让我们快速æ€è€ƒä¸€ä¸‹è¿™é‡Œåˆ°åº•å‘生了什么。在 (1) 处,我通过ä»?nbsp;Spring çš?nbsp;ActionSupport ¾c»è€Œä¸æ˜?nbsp;Struts çš?nbsp;Action ¾c»è¿›è¡Œæ‰©å±•,创å¾äº†ä¸€ä¸ªæ–°çš?nbsp;Action。在 (2) 处,我ä‹Éç”?nbsp;getWebApplicationContext() æ–ÒŽ³•获得一ä¸?nbsp;ApplicationContextã€‚äØ“äº†èŽ·å¾—ä¸šåŠ¡æœåŠ¡ï¼Œæˆ‘ä‹É用在 (2) 处获得的环境åœ?nbsp;(3) 处查找一ä¸?nbsp;Spring beanã€?br /> ˜q™ç§æŠ€æœ¯å¾ˆ½Ž€å•åÆˆä¸”æ˜“äºŽç†è§£ã€‚ä¸òq¸çš„æ˜¯ï¼Œå®ƒå°† Struts 动作ä¸?nbsp;Spring 框架耦åˆåœ¨ä¸€èµ—÷€‚如果您æƒÏx›¿æ¢æŽ‰ SpringåQŒé‚£ä¹ˆæ‚¨å¿…é¡»é‡å†™ä»£ç ã€‚åÆˆä¸”ï¼Œç”׃ºŽ Struts 动作ä¸åœ¨ Spring 的控制之下,所以它ä¸èƒ½èŽ·å¾— Spring AOP 的优åŠÑ€‚当使用多é‡ç‹¬ç«‹çš?nbsp;Spring 环境æ—Óž¼Œ˜q™ç§æŠ€æœ¯å¯èƒ½æœ‰ç”¨ï¼Œä½†æ˜¯åœ¨å¤§å¤šæ•°æƒ…况下,˜q™ç§æ–ÒŽ³•ä¸å¦‚å¦å¤–ä¸¤ç§æ–ÒŽ³•åˆé€‚ã€?br />
½Hé—¨ 2. 覆盖 RequestProcessor
ž®?nbsp;Spring ä»?nbsp;Struts 动作ä¸åˆ†¼›ÀL˜¯ä¸€ä¸ªæ›´å·§å¦™çš„设计选择。分¼›Èš„一¿U方法是使用 org.springframework.web.struts.DelegatingRequestProcessor ¾cÀL¥è¦†ç›– Struts çš?nbsp;RequestProcessor 处熽E‹åºåQŒå¦‚æ¸…å• 2 所½Cºï¼š æ¸…å• 2. 通过 Spring çš?nbsp;DelegatingRequestProcessor ˜q›è¡Œæ•´åˆ
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd" >
<struts-config>
<form-beans>
<form-bean name="searchForm"
type="org.apache.struts.validator.DynaValidatorForm" >
<form-property name="isbn" type="java.lang.String" />
</form-bean>
</form-beans>
<global-forwards type="org.apache.struts.action.ActionForward" >
<forward name="welcome" path="/welcome.do" />
<forward name="searchEntry" path="/searchEntry.do" />
<forward name="searchSubmit" path="/searchSubmit.do" />
</global-forwards>
<action-mappings>
<action path="/welcome" forward="/WEB-INF/pages/welcome.htm" />
<action path="/searchEntry" forward="/WEB-INF/pages/search.jsp" />
<action path="/searchSubmit"
type="ca.nexcel.books.actions.SearchSubmit"
input="/searchEntry.do"
validate="true"
name="searchForm" >
<forward name="success" path="/WEB-INF/pages/detail.jsp" />
<forward name="failure" path="/WEB-INF/pages/search.jsp" />
</action>
</action-mappings>
<message-resources parameter="ApplicationResources" />
<controller processorClass="org.springframework.web.struts.
DelegatingRequestProcessor"/> |(1)
<plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" >
<set-property property="csntextConfigLocation" value="/WEB-INF/beans.xml" />
</plug-in>
</struts-config>
我利用了 <controller> æ ‡è®°æ¥ç”¨ DelegatingRequestProcessor 覆盖默认çš?nbsp;Struts RequestProcessorã€‚ä¸‹ä¸€æ¥æ˜¯åœ¨æˆ‘çš?nbsp;Spring é…置文äšg䏿³¨å†Œè¯¥åŠ¨ä½œåQŒå¦‚æ¸…å• 3 所½Cºï¼š æ¸…å• 3. åœ?nbsp;Spring é…置文äšg䏿³¨å†Œä¸€ä¸ªåЍä½?br />
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<bean id="bookService" class ="ca.nexcel.books.business.BookServiceImpl" />
<bean name="/searchSubmit"
class ="ca.nexcel.books.actions.SearchSubmit" > |(1)
<property name="bookService" >
<ref bean="bookService" />
</property>
</bean>
</beans>
注æ„åQšåœ¨ (1) 处,我ä‹É用å¿U°å±žæ€§æ³¨å†Œäº†ä¸€ä¸?nbsp;beanåQŒä»¥åŒšw… struts-config åŠ¨ä½œæ˜ å°„å称。SearchSubmit 动作æç¤ºäº†ä¸€ä¸?nbsp;JavaBean 属性,å…许 Spring 在è¿è¡Œæ—¶å¡«å……属性,如清å?nbsp;4 所½Cºï¼š æ¸…å• 4. å…ähœ‰ JavaBean 属性的 Struts 动作
package ca.nexcel.books.actions;
import java.io.IOException ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import org.apache.struts.action.Action ;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import ca.nexcel.books.beans.Book ;
import ca.nexcel.books.business.BookService;
public class SearchSubmit extends Action {
private BookService bookService;
public BookService getBookService() {
return bookService;
}
public void setBookService(BookService bookService) { | (1)
this .bookService = bookService;
}
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException , ServletException {
DynaActionForm searchForm = (DynaActionForm) form;
String isbn = (String ) searchForm.get("isbn" );
Book book = getBookService().read(isbn.trim()); |(2)
if (null == book) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("message.notfound" ));
saveErrors(request, errors);
return mapping.findForward("failure" ) ;
}
request.setAttribute("book" , book);
return mapping.findForward("success" );
}
}
在清å?nbsp;4 ä¸ï¼Œæ‚¨å¯ä»¥äº†è§£åˆ°å¦‚ä½•åˆ›å¾ Struts 动作。在 (1) 处,我创å»ÞZº†ä¸€ä¸?nbsp;JavaBean 属性。DelegatingRequestProcessor自动地酾|®è¿™¿U属性。这¿U设计ä‹É Struts 动作òq¶ä¸çŸ¥é“它æ£è¢?nbsp;Spring ½Ž¡ç†åQŒåƈ且ä‹É您能够利ç”?nbsp;Sping çš„åŠ¨ä½œç®¡ç†æ¡†æž¶çš„æ‰€æœ‰ä¼˜ç‚V€‚由于您çš?nbsp;Struts 动作注æ„ä¸åˆ° Spring çš„å˜åœ¨ï¼Œæ‰€ä»¥æ‚¨ä¸éœ€è¦é‡å†™æ‚¨çš?nbsp;Struts ä»£ç ž®±å¯ä»¥ä‹É用其他控制åè½¬å®¹å™¨æ¥æ›¿æ¢æŽ?nbsp;Springã€?br /> DelegatingRequestProcessor æ–ÒŽ³•的确比第一¿U方法好åQŒä½†æ˜¯ä»ç„¶å˜åœ¨ä¸€äº›é—®é¢˜ã€‚如果您使用一个ä¸åŒçš„ RequestProcessoråQŒåˆ™éœ€è¦æ‰‹åŠ¨æ•´å?nbsp;Spring çš?nbsp;DelegatingRequestProcessorã€‚æ·»åŠ çš„ä»£ç ä¼šé€ æˆ¾l´æŠ¤çš„éº»çƒ¦åÆˆä¸”å°†æ¥ä¼šé™ä½Žæ‚¨çš„应用½E‹åºçš„絋zÀL€§ã€‚æ¤å¤–,˜q˜æœ‰˜q‡ä¸€äº›ä‹É用一¾pÕdˆ—命ä×oæ¥ä»£æ›?nbsp;Struts RequestProcessor çš„ä¼ é—…R€?nbsp;˜q™ç§æ”¹å˜ž®†ä¼šå¯¹è¿™¿Uè§£å†Ïx–¹æ³•çš„ä½¿ç”¨å¯¿å‘½é€ æˆè´Ÿé¢çš„媄å“ã€?br />
½Hé—¨ 3. ž®†åŠ¨ä½œç®¡ç†å§”托给 Spring
一个更好的解决æ–ÒŽ³•是将 Strut 动作½Ž¡ç†å§”托¾l?nbsp;Spring。您å¯ä»¥é€šè¿‡åœ?nbsp;struts-config åŠ¨ä½œæ˜ å°„ä¸æ³¨å†Œä¸€ä¸ªä»£ç†æ¥å®žçŽ°ã€‚ä»£ç†è´Ÿè´£åœ¨ Spring çŽ¯å¢ƒä¸æŸ¥æ‰?nbsp;Struts 动作。由于动作在 Spring 的控制之下,所以它å¯ä»¥å¡«å……动作çš?nbsp;JavaBean 属性,òq¶äؓ应用诸如 Spring çš?nbsp;AOP 拦截器之¾cÈš„ç‰ÒŽ€§å¸¦æ¥äº†å¯èƒ½ã€?nbsp; æ¸…å• 5 ä¸çš„ Action ¾cÖM¸Žæ¸…å• 4 ä¸çš„相åŒã€‚但æ˜?nbsp;struts-config 有一些ä¸åŒï¼š æ¸…å• 5. Spring æ•´åˆçš„委托方æ³?br />
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd" >
<struts-config>
<form-beans>
<form-bean name="searchForm"
type="org.apache.struts.validator.DynaValidatorForm" >
<form-property name="isbn" type="java.lang.String" />
</form-bean>
</form-beans>
<global-forwards type="org.apache.struts.action.ActionForward" >
<forward name="welcome" path="/welcome.do" />
<forward name="searchEntry" path="/searchEntry.do" />
<forward name="searchSubmit" path="/searchSubmit.do" />
</global-forwards>
<action-mappings>
<action path="/welcome" forward="/WEB-INF/pages/welcome.htm" />
<action path="/searchEntry" forward="/WEB-INF/pages/search.jsp" />
<action path="/searchSubmit"
type="org.springframework.web.struts.DelegatingActionProxy" |(1)
input="/searchEntry.do"
validate="true"
name="searchForm" >
<forward name="success" path="/WEB-INF/pages/detail.jsp" />
<forward name="failure" path="/WEB-INF/pages/search.jsp" />
</action>
</action-mappings>
<message-resources parameter="ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn" >
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" />
</plug-in>
</struts-config>
æ¸…å• 5 是一个典型的 struts-config.xml æ–‡äšgåQŒåªæœ‰ä¸€ä¸ªå°ž®çš„差别。它注册 Spring 代熾cÈš„åç§°åQŒè€Œä¸æ˜¯å£°æ˜ŽåŠ¨ä½œçš„¾cÕdåQŒå¦‚åQ?åQ‰å¤„所½Cºã€‚DelegatingActionProxy ¾cÖM‹Éç”¨åŠ¨ä½œæ˜ ž®„å¿U°æŸ¥æ‰?nbsp;Spring 环境ä¸çš„动作。这ž®±æ˜¯æˆ‘们使用 ContextLoaderPlugIn 声明的环境ã€?br /> ž®†ä¸€ä¸?nbsp;Struts 动作注册ä¸ÞZ¸€ä¸?nbsp;Spring bean 是éžå¸¸ç›´è§‚çš„åQŒå¦‚æ¸…å• 6 所½Cºã€‚æˆ‘åˆ©ç”¨åŠ¨ä½œæ˜ å°„ä½¿ç”¨ <bean> æ ‡è®°çš„å¿U°å±žæ€§ï¼ˆåœ¨è¿™ä¸ªä¾‹å䏿˜?nbsp;"/searchSubmit"åQ‰ç®€å•地创å¾äº†ä¸€ä¸?nbsp;bean。这个动作的 JavaBean 属性åƒä»ÖM½• Spring bean ä¸€æ ¯‚¢«å¡«å……åQ?nbsp; æ¸…å• 6. åœ?nbsp;Spring çŽ¯å¢ƒä¸æ³¨å†Œä¸€ä¸?nbsp;Struts 动作
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<bean id="bookService" class ="ca.nexcel.books.business.BookServiceImpl" />
<bean name="/searchSubmit"
class ="ca.nexcel.books.actions.SearchSubmit" >
<property name="bookService" >
<ref bean="bookService" />
</property>
</bean>
</beans>
动作委托的优�/h5>
动作委托解决æ–ÒŽ³•æ˜¯è¿™ä¸‰ç§æ–ÒŽ³•䏿œ€å¥½çš„。Struts 动作ä¸äº†è§?nbsp;SpringåQŒä¸å¯¹ä»£ç 作ä»ÖM½•改嘞®±å¯ç”¨äºŽé?nbsp;Spring 应用½E‹åºä¸ã€‚RequestProcessor 的改å˜ä¸ä¼šåª„å“它åQŒåƈ且它å¯ä»¥åˆ©ç”¨ Spring AOP ç‰ÒŽ€§çš„优点ã€?nbsp; åŠ¨ä½œå§”æ‰˜çš„ä¼˜ç‚¹ä¸æ¢å¦‚æ¤ã€‚一旦让 Spring 控制您的 Struts 动作åQŒæ‚¨ž®±å¯ä»¥ä‹Éç”?nbsp;Spring ¾l™åŠ¨ä½œè¡¥å……æ›´å¼ºçš„‹zÕdŠ›ã€‚ä¾‹å¦‚ï¼Œæ²¡æœ‰ Spring çš„è¯åQŒæ‰€æœ‰çš„ Struts 动作都必™åÀL˜¯¾U¿ç¨‹å®‰å…¨çš„。如果您讄¡½® <bean> æ ‡è®°çš?nbsp;singleton å±žæ€§äØ““false”åQŒé‚£ä¹ˆä¸½Ž¡ç”¨ä½•ç§æ–ÒŽ³•åQŒæ‚¨çš„应用程åºéƒ½ž®†åœ¨æ¯ä¸€ä¸ªè¯·æ±‚上有一个新生æˆçš„动作对象。您å¯èƒ½ä¸éœ€è¦è¿™¿U特性,但是把它攑֜¨æ‚¨çš„工具½Ž×ƒ¸ä¹Ÿå¾ˆå¥½ã€‚您也å¯ä»¥åˆ©ç”?nbsp;Spring 的生命周期方法。例如,当实例化 Struts 动作æ—Óž¼Œ<bean> æ ‡è®°çš?nbsp;init-method 属性被用于˜q行一个方法。类似地åQŒåœ¨ä»Žå®¹å™¨ä¸åˆ 除 bean 之å‰åQŒdestroy-method 属性执行一个方法。这些方法是½Ž¡ç†æ˜‚贵对象的好办法åQŒå®ƒä»¬ä»¥ä¸€¿U与 Servlet 生命周期相åŒçš„æ–¹å¼è¿›è¡Œç®¡ç†ã€?br />
拦截 Struts
å‰é¢æåˆ°˜q‡ï¼Œé€šè¿‡ž®?nbsp;Struts 动作委托¾l?nbsp;Spring 框架而整å?nbsp;Struts å’?nbsp;Spring 的一个主è¦çš„优点是:您å¯ä»¥å°† Spring çš?nbsp;AOP 拦截器应用于您的 Struts 动作。通过ž®?nbsp;Spring 拦截器应用于 Struts 动作åQŒæ‚¨å¯ä»¥ç”¨æœ€ž®çš„代ähå¤„ç†æ¨ªåˆ‡å…Ïx³¨ç‚V€?br /> 虽然 Spring æä¾›å¾ˆå¤šå†…ç½®æ‹¦æˆªå™¨ï¼Œä½†æ˜¯æˆ‘å°†å‘æ‚¨å±•示如何创å¾è‡ªå·±çš„æ‹¦æˆªå™¨òq¶æŠŠå®ƒåº”用于一ä¸?nbsp;Struts åŠ¨ä½œã€‚äØ“äº†ä‹É用拦截器åQŒæ‚¨éœ€è¦åšä¸‰äšg事:
åˆ›å¾æ‹¦æˆªå™¨ã€?/ul>
注册拦截器�/ul>
声明在何处拦截代ç ã€?/ul>
˜q™çœ‹èµäh¥éžå¸¸½Ž€å•çš„å‡ å¥è¯å´éžå¸¸å¼ºå¤§ã€‚例如,在清å?nbsp;7 ä¸ï¼Œæˆ‘䨓 Struts 动作创å¾äº†ä¸€ä¸ªæ—¥å¿—记录拦截器ã€?nbsp;˜q™ä¸ªæ‹¦æˆªå™¨åœ¨æ¯ä¸ªæ–ÒŽ³•è°ƒç”¨ä¹‹å‰æ‰“å°ä¸€å¥è¯åQ?br /> æ¸…å• 7. 一个简å•的日志记录拦截å™?br />
package ca.nexcel.books.interceptors;
import org.springframework.aop.MethodBeforeAdvice;
import java.lang.reflect.Method ;
public class LoggingInterceptor implements MethodBeforeAdvice {
public void before(Method method, Object [] objects, Object o) throws Throwable {
System .out.println("logging before!" );
}
}
˜q™ä¸ªæ‹¦æˆªå™¨éžå¸¸ç®€å•。before() æ–ÒŽ³•åœ¨æ‹¦æˆªç‚¹ä¸æ¯ä¸ªæ–¹æ³•之å‰è¿è¡Œã€‚在本例ä¸ï¼Œå®ƒæ‰“å°å‡ºä¸€å¥è¯åQŒå…¶å®žå®ƒå¯ä»¥åšæ‚¨æƒ›_šçš„ä“Q何事。下一æ¥å°±æ˜¯åœ¨ Spring é…置文äšg䏿³¨å†Œè¿™ä¸ªæ‹¦æˆªå™¨åQŒå¦‚æ¸…å• 8 所½Cºï¼š æ¸…å• 8. åœ?nbsp;Spring é…置文äšg䏿³¨å†Œæ‹¦æˆªå™¨
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<bean id="bookService" class ="ca.nexcel.books.business.BookServiceImpl" />
<bean name="/searchSubmit"
class ="ca.nexcel.books.actions.SearchSubmit" >
<property name="bookService" >
<ref bean="bookService" />
</property>
</bean>
<!-- Interceptors -->
<bean name="logger"
class ="ca.nexcel.books.interceptors.LoggingInterceptor" /> |(1)
<!-- AutoProxies -->
<bean name="loggingAutoProxy"
class ="org.springframework.aop.framework.autoproxy.
BeanNameAutoProxyCreator"> |(2)
<property name="beanNames" >
<value>/searchSubmit</valuesgt; |(3)
</property>
<property name="interceptorNames" >
<list>
<value>logger</value> |(4)
</list>
</property>
</bean>
</beans>
您å¯èƒ½å·²¾l注æ„åˆ°äº†ï¼Œæ¸…å• 8 扩展äº?nbsp;æ¸…å• 6 䏿‰€½Cºçš„应用½E‹åºä»¥åŒ…å«ä¸€ä¸ªæ‹¦æˆªå™¨ã€‚具体细节如下: åœ?nbsp;(1) 处,我注册了˜q™ä¸ªæ‹¦æˆªå™¨ã€?br />åœ?nbsp;(2) 处,我创å»ÞZº†ä¸€ä¸?nbsp;bean å称自动代ç†åQŒå®ƒæè¿°å¦‚何应用拦截器。还有其他的æ–ÒŽ³•定义拦截点,但是˜q™ç§æ–ÒŽ³•常è§è€Œç®€ä¾Ñ€?br />åœ?nbsp;(3) 处,我将 Struts 动作注册为将被拦截的 bean。如果您惌™¦æ‹¦æˆªå…¶ä»–çš?nbsp;Struts 动作åQŒåˆ™åªéœ€è¦åœ¨ "beanNames" 下é¢åˆ›å¾é™„åŠ çš?nbsp;<value> æ ‡è®°ã€?br />åœ?nbsp;(4) 处,当拦截å‘生时åQŒæˆ‘执行了在 (1) 处创建的拦截å™?nbsp;bean çš„å¿U°ã€‚这里列出的所有拦截器都应用于“beanNames”ã€?br />ž®±æ˜¯˜q™æ ·ã€‚å°±åƒè¿™ä¸ªä¾‹å所展示的,ž®†æ‚¨çš?nbsp;Struts 动作¾|®äºŽ Spring æ¡†æž¶çš„æŽ§åˆ¶ä¹‹ä¸‹ï¼Œä¸ºå¤„ç†æ‚¨çš?nbsp;Struts 应用½E‹åºæä¾›äº†ä¸€¾pÕdˆ—全新的选择。在本例ä¸ï¼Œä½¿ç”¨åŠ¨ä½œå§”æ‰˜å¯ä»¥è½ÀL¾åœ°åˆ©ç”?nbsp;Spring 拦截器æé«?nbsp;Struts 应用½E‹åºä¸çš„æ—¥å¿—记录能力ã€?br />
¾l“æŸè¯?/h4>
在本文ä¸åQŒæ‚¨å·²ç»å¦ä¹ 了将 Struts 动作整åˆåˆ?nbsp;Spring 框架ä¸çš„三秽H门。ä‹Éç”?nbsp;Spring çš?nbsp;ActionSupport æ¥æ•´å?nbsp;StrutsåQˆç¬¬ä¸€¿Uçªé—¨ä¸ž®±æ˜¯˜q™æ ·åšçš„åQ‰ç®€å•而快æøP¼Œä½†æ˜¯ä¼šå°† Struts 动作ä¸?nbsp;Spring 框架耦åˆåœ¨ä¸€èµ—÷€‚如果您需è¦å°†åº”用½E‹åº¿UÀL¤åˆîC¸€ä¸ªä¸åŒçš„æ¡†æž¶åQŒåˆ™éœ€è¦é‡å†™ä»£ç 。第二ç§è§£å†³æ–ÒŽ³•通过委托 RequestProcessor 巧妙地解开代ç 的耦åˆåQŒä½†æ˜¯å®ƒçš„坿‰©å±•性ä¸å¼ºï¼Œòq¶ä¸”å½?nbsp;Struts çš?nbsp;RequestProcessor å˜æˆä¸€¾pÕdˆ—命ä×oæ—Óž¼Œ˜q™ç§æ–ÒŽ³•ž®±æŒ¾lä¸äº†å¾ˆé•¿æ—¶é—´ã€‚ç¬¬ä¸‰ç§æ–ÒŽ³•æ˜¯è¿™ä¸‰ç§æ–ÒŽ³•䏿œ€å¥½çš„åQšå°† Struts 动作委托¾l?nbsp;Spring 框架å¯ä»¥ä½¿ä»£ç 解耦,从而ä‹É您å¯ä»¥åœ¨æ‚¨çš„ Struts 应用½E‹åºä¸åˆ©ç”?nbsp;Spring 的特性(比如日志记录拦截器)ã€?br /> ä¸‰ç§ Struts-Spring 整刽Hé—¨ä¸çš„æ¯ä¸€¿U都被实现æˆä¸€ä¸ªå®Œæ•´å¯ç”¨çš„应用½E‹åºã€‚请å‚阅 ä¸‹è² éƒ¨åˆ†ä»”ç»†ç ”ç©¶å®ƒä»¬ã€?img src ="http://www.aygfsteel.com/jackylpz/aggbug/41354.html" width = "1" height = "1" /> ]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
ãèÂÞÊÐ |
ÅÌÉ½ÏØ |
Ëç½ÏØ |
¦·³ÏØ |
ÉîÔóÏØ |
Ôý´ïÏØ |
¹ÝÌÕÏØ |
ÎijÉÏØ |
Ëç½ÏØ |
¸ÊµÂÏØ |
ÜÆ½ |
º£³ÇÊÐ |
ÇØ»ÊµºÊÐ |
»³Ô¶ÏØ |
áÓãôÏØ |
ÖñÏªÏØ |
¸£°²ÊÐ |
ÌúÁ¦ÊÐ |
É̶¼ÏØ |
ÓÀÄêÏØ |
¸Á¶ûÏØ |
¾ÞÒ°ÏØ |
½éÐÝÊÐ |
Õê·áÏØ |
ÎèÑôÏØ |
³à³ÇÏØ |
Ûº£ÏØ |
ÏæÌ¶ÏØ |
±±´¨ |
ӥ̶ÊÐ |
»³°²ÏØ |
°ÙÉ«ÊÐ |
Ã÷ÐÇ |
´¾°²ÏØ |
·â¿ªÏØ |
¹ãÄÏÏØ |
»ù¡ÊÐ |
°²»ÕÊ¡ |
캵ÂÏØ |
ÎÀ»ÔÊÐ |
Ñô´ºÊÐ |