锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲永久中文字幕在线,亚洲日韩中文无码久久,亚洲人精品亚洲人成在线http://m.tkk7.com/ldwblog/category/41228.html鎬佸害鍐沖畾涓鍒?/description>zh-cnTue, 07 Jan 2020 10:49:26 GMTTue, 07 Jan 2020 10:49:26 GMT60涓漢鍏紬鍙楓孞ava鐖卞ソ鑰呯ぞ鍖恒嶉珮璐ㄩ噺鍘熷垱鏂囩珷鎸佺畫杈撳嚭錛屾榪庡悇浣嶅皬涓誨叧娉?/title><link>http://m.tkk7.com/ldwblog/archive/2019/10/30/434887.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Wed, 30 Oct 2019 06:10:00 GMT</pubDate><guid>http://m.tkk7.com/ldwblog/archive/2019/10/30/434887.html</guid><wfw:comment>http://m.tkk7.com/ldwblog/comments/434887.html</wfw:comment><comments>http://m.tkk7.com/ldwblog/archive/2019/10/30/434887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/ldwblog/comments/commentRss/434887.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/ldwblog/services/trackbacks/434887.html</trackback:ping><description><![CDATA[blogjava緗戠珯涓庡崥瀹㈠洯鍚堝茍浜嗭紝瀵筨logjava榪樻槸鏈夋劅鎯呯殑銆?br />騫朵笖blogjava緗戠珯鍙戝竷鐨勬枃绔犳槸鍦ㄥ崥瀹㈠洯棣栭〉鐪嬩笉鍒扮殑銆?br />blogjava緗戠珯棣栭〉鑳界湅鍒幫紝浣犲彲浠ョ偣鍑繪爣棰樿繘鍏ュ彲浠ョ湅鍒板浘鐗囦簩緇寸爜淇℃伅銆?br /><br /><strong style="color: red; font-size: 14pt;">Java鐖卞ソ鑰呯ぞ鍖?/strong><br />鍏紬鍙峰唴瀹圭畝浠嬶細<br /><p><span style="background-color: yellow; color: red;">涓撴敞浜庡垎浜獼ava鍚庣鐩稿叧鎶鏈佽佸徃鏈哄疄鎴樺共璐э紝涓嶉檺浜嶫VM銆佸茍鍙戙佽璁℃ā寮忋佹ц兘浼樺寲銆佸垎甯冨紡&寰湇鍔°佷簯鍘熺敓銆佸ぇ鏁版嵁鐩稿叧涓婚銆?/span><br style="color: red;" /><span style="background-color: yellow; color: red;">甯屾湜鍏蟲敞鐨勪綘鍋滀笅鑴氭錛屽畾鏈夋墍鏀惰幏銆?/span><br style="color: red;" /><br />浠ュ墠鐨勪釜浜哄崥瀹㈠唴瀹逛笉濂借縼縐伙紝鎵浠ユ垜鎵撶畻鏍規嵁鑷繁鐨勫騫寸粡楠岋紝涓嶆柇鏁寸悊杈撳嚭鏈変環鍊肩殑鍐呭銆?br />鐩墠鍏紬鍙峰唴瀹規湁鍏充簬<span style="background-color: yellow; color: red;">SpringCloud錛堝井鏈嶅姟妗嗘灦錛夈丼kywalking錛圓PM鐩戞帶璋冪敤閾撅級銆丣VM錛圙C鍒嗘瀽銆佸唴瀛樻硠婕忓垎鏋愶級銆佸茍鍙戠紪紼?/span>鐩稿叧鍘熷垱瀹炴垬鏂囩珷宸插嚭鐐夈?br /><br />鏈榪戝垰寮濮嬪凡緇忔湁涓嶅皯灝忎紮浼村叧娉ㄤ簡錛屾湡寰呰兘鏈夊垢鎼滅儲鍒版湰鍗氬鐨勫悓瀛︼紝鍙互鎵爜鍏蟲敞涓涓嬶紝涓嶈儨鎰熸縺銆?br />澶у鏈変換浣曟妧鏈佽亴鍦恒侀潰璇曚笂鐨勯棶棰橀兘鍙互涓庢垜浜ゆ祦銆?br /><br /><span style="background-color: yellow;"><strong>鏂瑰紡涓錛?/strong></span><span style="color: red; background-color: yellow;"><strong>鎵爜浠ヤ笅鍏紬鍙蜂簩緇寸爜錛?/strong></span><br /><img src="http://m.tkk7.com/images/blogjava_net/ldwblog/Java%E7%88%B1%E5%A5%BD%E8%80%85%E7%A4%BE%E5%8C%BA%E4%BA%8C%E7%BB%B4%E7%A0%81.png" border="0" alt="" /><br /><br />鏂瑰紡浜岋細<span style="color: red;">鍦ㄥ井淇′笂鐩存帴鎼滅儲錛?nbsp;</span><span style="color: red; background-color: yellow;">javatech_cbo</span><br /><br />鎰熻阿鍚勪綅灝忎紮浼寸殑鏀寔錛屽悗緇細鍦ㄨ鍏紬鍙蜂笂杈撳嚭澶ч噺鐨勬湁浠峰肩殑瀹炴垬騫茶揣 錛屾湡寰呬笌浣犱竴鍚岃繘姝ヤ笌鎴愰暱銆?br /></p><img src ="http://m.tkk7.com/ldwblog/aggbug/434887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/ldwblog/" target="_blank">David1228</a> 2019-10-30 14:10 <a href="http://m.tkk7.com/ldwblog/archive/2019/10/30/434887.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Mybatis3.2.1鏁村悎Spring3.1http://m.tkk7.com/ldwblog/archive/2013/07/10/401418.htmlDavid1228David1228Wed, 10 Jul 2013 10:07:00 GMThttp://m.tkk7.com/ldwblog/archive/2013/07/10/401418.htmlhttp://m.tkk7.com/ldwblog/comments/401418.htmlhttp://m.tkk7.com/ldwblog/archive/2013/07/10/401418.html#Feedback2http://m.tkk7.com/ldwblog/comments/commentRss/401418.htmlhttp://m.tkk7.com/ldwblog/services/trackbacks/401418.html闃呰鍏ㄦ枃

David1228 2013-07-10 18:07 鍙戣〃璇勮
]]>
Spring 3.2涓変釜鍊煎緱鍏蟲敞鐨勬柊鐗規?/title><link>http://m.tkk7.com/ldwblog/archive/2013/07/10/401397.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Wed, 10 Jul 2013 03:48:00 GMT</pubDate><guid>http://m.tkk7.com/ldwblog/archive/2013/07/10/401397.html</guid><wfw:comment>http://m.tkk7.com/ldwblog/comments/401397.html</wfw:comment><comments>http://m.tkk7.com/ldwblog/archive/2013/07/10/401397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/ldwblog/comments/commentRss/401397.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/ldwblog/services/trackbacks/401397.html</trackback:ping><description><![CDATA[<p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;">涓嶅緱涓嶆壙璁ょ殑鏄?鍦ㄧ洰鍓嶇殑web搴旂敤寮鍙戜腑,Spring鐨勫簲鐢ㄨ秺鏉ヨ秺騫挎硾,鍏跺湴浣嶅彉寰楃浉褰撻噸瑕併傝屽湪鏈榪戞帹鍑虹殑Spring 3.2鐗堟湰涓紝鍙堝紩鍏ヤ簡涓浜涙柊鐨勫煎緱鍏蟲敞鐨勭壒鎬с傛湰鏂囦腑灝嗕粙緇嶅叾涓竴浜涘煎緱鍏蟲敞鐨勬柊鐗規с?/p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><strong>涓銆涓嶅啀闇瑕亀eb.xml</strong></p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><strong>銆</strong>鍦ㄦ柊鐨凷pring 3.2涓紝鍙互涓嶅啀闇瑕亀eb.xml榪欎釜鏂囦歡浜嗭紝榪欏緱鐩婁簬Servlet 3.0鐨勬柊鐗規с?/p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;">鍏朵腑錛屽彲浠ヤ嬌鐢ˊWebServlet鍦ㄩ渶瑕佽皟鐢ㄧ殑servlet涓紝浣跨敤娉ㄨВ鍘昏緗畇ervlet涓殑鏄犲皠鍏崇郴銆傝繖鏍風殑璇濓紝灝卞彲浠ヤ笉鍐嶈薄浠ュ線閭f牱瑕侀氳繃鍦╳eb.xml涓servlet榪涜閰嶇疆錛屽崄鍒嗘柟渚褲?/p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;">姝ゅ錛孲ervlet 3.0鎻愪緵浜嗘棦鑳藉湪瀹瑰櫒涓姩鎬佹敞鍐宻ervlet鐨勬柟娉曪紝涔熸彁渚涗簡閫氳繃瀹炵幇</p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;">ServletContainerInitializer鎺ュ彛鐨勬柟娉曞疄鐜板湪瀹瑰櫒鍚姩闃舵涓哄鍣ㄥ姩鎬佹敞鍐孲ervlet銆丗ilter鍜宭isteners銆傚鍣ㄤ細鍦ㄥ簲鐢ㄧ殑鍚姩闃舵錛岃皟鐢ㄦ墍鏈夊疄鐜癝ervletContainerInitializer鎺ュ彛綾諱腑鐨刼nStartup()鏂規硶銆傝孲pring銆3.2涓紝鍒欒繘涓姝ョ畝鍖栦簡榪欑偣錛屽彧闇瑕佸疄鐜癢ebApplicationInitializer鎺ュ彛灝卞彲浠ヤ簡錛屽叾涓彁渚涗簡涓涓浉鍏崇殑瀹炵幇綾伙紞錛岮bstractContextLoaderInitializer錛屽畠鍙互鍔ㄦ佹敞鍐孌ispatcherServlet銆傝繖鎰忓懗鐫錛屽彧瑕乻pring-webmvc.jar鏀劇疆鍦╳eb搴旂敤鐨剋eb-inf/lib涓紝灝卞彲浠ヨ皟鐢―ispatcher servlet浜嗐傚彲浠ュ弬鑰冨涓嬬殑渚嬪瓙錛堟潵鑷猄pring鏂囨。錛夛細</p><pre style="margin-top: 0px; padding: 0px; color: #333333; font-family: 'Courier New', monospace; font-size: 12px; width: 590.8333740234375px; overflow: auto; background-color: #e6e6e6; line-height: 27.986112594604492px;"><ol style="margin-left: 55px; padding: 5px 0px; color: #5c5c5c; list-style-position: initial; list-style-image: initial; word-wrap: break-word; word-break: normal; border: none; background-color: #f7f7f7; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 1px !important;"><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;"><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">class</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> MyWebApplicationInitializer </span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">implements</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> WebApplicationInitializer { </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@Override</span> </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">void</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> onStartup(ServletContext container) { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        ServletRegistration.Dynamic registration = container.addServlet(<span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"dispatcher"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">, </span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">new</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> DispatcherServlet()); </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        registration.setLoadOnStartup(<span style="margin: 0px; padding: 0px; border: none; color: #c00000; background-color: inherit;">1</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">); </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        registration.addMapping(<span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"/example/*"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">); </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">} </span></li></ol></pre><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><strong>浜屻鏀寔Java</strong><strong>緙栫▼寮忛厤緗?/strong><strong></strong>鍦⊿pring mvc 3.2涓紝涓涓笉閿欑殑鐗規у氨鏄湪涔嬪墠鐗堟湰涓敮鎸佷嬌鐢↗ava浠g爜閰嶇疆鍚勭渚濊禆娉ㄥ叆鐨勫熀紜涓婏紝榪涗竴姝ョ畝鍖栦簡閰嶇疆銆傚叧浜庝嬌鐢↗ava緙栫▼寮忛厤緗殑濂藉錛屽彲浠ラ氳繃涓嬮潰榪欎釜閾炬帴鏂囩珷鐨勪粙緇嶅幓瀛︿範</p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;">錛?a _ style="color: #004276;">http://blog.frankel.ch/consider-replacing-spring-xml-configuration-with-javaconfig</a>錛夈?br style="clear: both; width: 0px; height: 0px;" />鍦⊿pring mvc 3.2涓紝鎻愪緵浜?span style="background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">AbstractContextLoaderInitialize</span><span style="background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鐨勪竴涓瓙綾?/span><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">AbstractAnnotationConfigDispatcherServletInitializer</span></code><span style="background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鍘誨疄鐜伴浂</span><span style="background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">XML</span><span style="background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">閰嶇疆鐨勬晥鏋滐紝鍙渶瑕佸垱寤虹殑綾葷戶鎵?/span><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">AbstractAnnotationConfigDispatcherServletInitializer</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">灝卞彲浠ヤ簡錛屽涓嬩唬鐮佹墍紺猴細</span></code></p><pre style="margin-top: 0px; padding: 0px; color: #333333; font-family: 'Courier New', monospace; font-size: 12px; width: 590.8333740234375px; overflow: auto; background-color: #e6e6e6; line-height: 27.986112594604492px;"><ol style="margin-left: 55px; padding: 5px 0px; color: #5c5c5c; list-style-position: initial; list-style-image: initial; word-wrap: break-word; word-break: normal; border: none; background-color: #f7f7f7; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 1px !important;"><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;"><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">  </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;"><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">class</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">  </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">SugarSpringWebInitializer <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">extends</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> AbstractAnnotationConfigDispatcherServletInitializer { </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@Override</span> </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">protected</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> Class<?>[] getRootConfigClasses() { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">return</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">new</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> Class[] { JavaConfig.</span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">class</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> }; </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@Override</span> </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">protected</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> Class<?>[] getServletConfigClasses() { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">return</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">new</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> Class[] { WebConfig.</span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">class</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> }; </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@Override</span> </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">protected</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> String[] getServletMappings() { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">return</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">new</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> String[] { </span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"/"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> }; </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"> </li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">} </span></li></ol></pre><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><strong><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">涓?/span><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鍔熻兘鏇村己澶х殑</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">Spring Test </span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">妗嗘灦</span></code></strong><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;"><strong></strong></span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鐜板湪錛屽崟鍏冩祴璇曟樉寰楄秺鏉ヨ秺閲嶈浜嗭紝姣忎竴涓被閮藉緩璁仛濂藉搴旂殑鍗曞厓嫻嬭瘯銆傚湪</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">Spring 3.2</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鐗堟湰涔嬪墠錛屽鏋滆瀵?/span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">Spring MVC</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">榪涜鍗曞厓嫻嬭瘯鐨勮瘽錛屽繀欏繪樉寮忓幓璋冪敤鏌愪釜鎺у埗鍣ㄧ被涓殑鏌愪釜鏂規硶錛岃屼笉鑳界洿鎺ュ崟鍏冩祴璇曠浉鍏崇殑</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">mapping</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鏄犲皠銆傝屽湪</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">Spring mvc 3.2</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">涓紝閲嶆柊鏁村悎鍜屽寮轟簡嫻嬭瘯妗嗘灦鐨勫姛鑳斤紝鏀寔鐩存帴鐢?/span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">/*</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">榪欐牱鐨勬槧灝勬柟寮忓幓嫻嬭瘯鏌愪釜鎺у埗鍣ㄤ腑鐨勭被銆傚悓鏃訛紝涔嬪墠鐨勫紑婧愰」鐩紙</span></code><a _ style="color: #004276;"><span style="border: 1px windowtext; padding: 0px; background-color: white; background-position: initial initial; background-repeat: initial initial;">https://github.com/SpringSource/spring-test-mvc</span><span style="border: 1px windowtext; padding: 0px; background-color: white; background-position: initial initial; background-repeat: initial initial;">錛?/span><span style="border: 1px windowtext; padding: 0px; background-color: white; background-position: initial initial; background-repeat: initial initial;">涔熻鏀跺綍鍒?/span><span style="border: 1px windowtext; padding: 0px; background-color: white; background-position: initial initial; background-repeat: initial initial;">Spring mvc 3.2</span></a><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">涓幓浜?/span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">銆傛澶栵紝榪樻柊澧炲姞浜嗗榪斿洖</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">(return)</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">錛岄噸瀹氬悜</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">(redirect)</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鍜?/span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">model</span></code><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">絳夌殑嫻嬭瘯鏀硅繘錛屼笅闈㈡槸涓涓緥瀛愶細</span></code></p><pre style="margin-top: 0px; padding: 0px; color: #333333; font-family: 'Courier New', monospace; font-size: 12px; width: 590.8333740234375px; overflow: auto; background-color: #e6e6e6; line-height: 27.986112594604492px;"><ol style="margin-left: 55px; padding: 5px 0px; color: #5c5c5c; list-style-position: initial; list-style-image: initial; word-wrap: break-word; word-break: normal; border: none; background-color: #f7f7f7; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 1px !important;"><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;"><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">class</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> SayHelloControllerIT </span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">extends</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> AbstractTestNGSpringContextTests { </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">  </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">private</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> MockMvc mockMvc; </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">  </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@BeforeMethod</span> </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">void</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> setUp() { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">  </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        mockMvc = webAppContextSetup((WebApplicationContext) applicationContext).build(); </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">  </span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #646464; background-color: inherit;">@Test</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">(dataProvider = </span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"pathParameterAndExpectedModelValue"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">) </span></span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">public</span> <span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">void</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> accessingSayhelloWithSubpathShouldForwardToSayHelloJspWithModelFilled(String path, String value) </span><span style="margin: 0px; padding: 0px; border: none; color: #006699; background-color: inherit; font-weight: bold;">throws</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;"> Exception { </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">  </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">        mockMvc.perform(get(<span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"/sayHello/Jo"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">)).andExpect(view().name(</span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"sayHello"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">)).andExpect(model().attribute(</span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"name"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">, </span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"Jo"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">)); </span></span></li><li style="margin: 0px !important; padding: 0px 3px 0px 10px !important; color: inherit; list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">    } </span></li><li style="list-style: none; word-wrap: break-word; word-break: normal; border: none; background-image: url(http://images.51cto.com/images/art1105/images/0.gif); background-attachment: scroll; background-color: transparent; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important; background-position: -498px -70px; background-repeat: no-repeat repeat;"><span style="margin: 0px; padding: 0px; border: none; color: black; background-color: inherit;">} </span></li></ol></pre><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鏈枃鐨勭ず渚嬩唬鐮佸彲浠ュ湪</span><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">:</span></code> <a _ style="color: #004276;"><span style="border: 1px windowtext; padding: 0px; background-color: white; background-position: initial initial; background-repeat: initial initial;">http://blog.frankel.ch/wp-content/resources/spring-3-2-sweetness/spring-sweet-1.0.0.zip</span></a><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">涓笅杞姐?/span></code></p><p style="margin: 10px 0px; padding: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 瀹嬩綋; font-size: 14.44444465637207px; line-height: 27.986112594604492px;"><code><span style="border: 1px windowtext; padding: 0px; background-color: white; color: #222222; background-position: initial initial; background-repeat: initial initial;">鍘熸枃閾炬帴錛?a style="color: #004276;">http://java.dzone.com/articles/spring-32-sweetness</a></span></code></p><img src ="http://m.tkk7.com/ldwblog/aggbug/401397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/ldwblog/" target="_blank">David1228</a> 2013-07-10 11:48 <a href="http://m.tkk7.com/ldwblog/archive/2013/07/10/401397.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring2.5鐗堟湰涓嬌鐢ㄦ敞瑙Resource/@Antowired闂http://m.tkk7.com/ldwblog/archive/2013/03/21/396786.htmlDavid1228David1228Thu, 21 Mar 2013 02:22:00 GMThttp://m.tkk7.com/ldwblog/archive/2013/03/21/396786.htmlhttp://m.tkk7.com/ldwblog/comments/396786.htmlhttp://m.tkk7.com/ldwblog/archive/2013/03/21/396786.html#Feedback0http://m.tkk7.com/ldwblog/comments/commentRss/396786.htmlhttp://m.tkk7.com/ldwblog/services/trackbacks/396786.htmlSpring2.5緇х畫鍧氭寔浜嗚繖涓彂灞曡秼鍚戯紝鐗瑰埆鏄負閭d簺浣跨敤Java 5鎴栨洿鏂扮増鏈琷ava鐨勫紑鍙戜漢鍛樻彁渚涗簡榪涗竴姝ョ畝鍖栬屽己澶х殑鏂扮壒鎬с傝繖浜涙柊鐗規у寘鎷細娉ㄨВ椹卞姩鐨勪緷璧栨ф敞鍏ワ紙annotation-driven dependency injection錛夛紝浣跨敤娉ㄨВ鑰岄潪XML鍏冩暟鎹潵鑷姩渚︽祴classpath涓婄殑Spring緇勪歡錛屾敞瑙e鐢熷懡鍛ㄦ湡鏂規硶鐨勬敮鎸侊紝涓涓柊鐨剋eb鎺у埗鍣ㄦā鍨嬪皢璇鋒眰鏄犲皠鍒板姞娉ㄨВ鐨勬柟娉曚笂錛屽湪嫻嬭瘯妗嗘灦涓敮鎸丣unit4錛孲pring XML鍛藉悕絀洪棿鐨勬柊澧炲唴瀹癸紝絳夌瓑銆?/div>
欏圭洰涓嬌鐢ㄧ殑spring2.5鐗堟湰銆傚鏋滄兂瑕佷嬌鐢╯pring鎻愪緵鐨勬敞瑙e姛鑳?
applicationContext.xml閰嶇疆鏂囦歡涓鍔犲涓嬮厤緗?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- Using annontations -->
<context:annotation-config></context:annotation-config>
鏂板浠ヤ笅涓夐」鎵嶅彲浠ヤ嬌鐢ㄦ敞瑙e姛鑳?span style="white-space:pre">
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config></context:annotation-config>
鎴栬?lt;bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/> 娉ㄥ唽涓涓崟鐙殑Spring post-processor.
涓涓病鏈夊疄鐜頒換浣曟帴鍙g殑涓氬姟綾伙紝閰嶇疆濡備笅:
public class LogService extends Service{
public LogBiz(){}
@Resource //榛樿鎸夊悕縐版煡鎵綽ean. 濡傛灉鎵句笉鍒幫紝鍒欐寜綾誨瀷鍖歸厤bean.
private BaseDao dao;
}
tomcat鍚姩閿欒1錛?/div>
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logBiz': Injection of resource fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.ccms.base.dao.BaseDAO] is defined: expected single matching bean but found 40: [baseDAO, loginDAO, logDAO]
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:876)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:437)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
... 32 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.ccms.base.dao.BaseDAO] is defined: expected single matching bean but found 40: [baseDAO, loginDAO, logDAO]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:583)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:418)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:497)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:145)
at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:79)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:288)
... 42 more
浣跨敤@Resource榛樿鎸夊悕縐版煡鎵綽ean. 濡傛灉鎵句笉鍒幫紝鍒欐寜綾誨瀷鍖歸厤bean.鑰屽悕縐癲ao娌℃湁鎵懼埌錛屾墍浠ヤ細鏍規嵁BaseDAO鍖歸厤錛屼絾鏄疊aseDAO鏄竴涓帴鍙o細
<bean id="loginDAO" class="com.test.dao.loginDAO" parent="baseDAO" />
<bean id="logDAO" class="com.test.dao.logDAO" parent="baseDAO" />
<bean id="baseDAO" class="com.ccms.base.dao.BaseDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
<property name="simpleJdbcTemplate">
<ref bean="simpleJdbcTemplate" />
</property>
</bean>
鏈変袱涓疄鐜頒簡BaseDAO鎺ュ彛鐨勭被錛屾墍浠pring灝變笉鐭ラ亾搴旇浣跨敤鍝竴涓簡銆傜洿鎺ユ姏鍑哄紓甯搞?/div>
瑙e喅鏂規硶1錛?/div>
鎴戜滑鍙互鐪嬪埌baseDAO鍚嶇О鏄敮涓鐨勶紝 鎵浠ュ鏋滄兂瑕佹寜鐓у悕縐板尮閰嶏紝鍒欑洿鎺ュ啓baseDAO灝卞彲浠ヤ簡
@Resource
private BaseDAO baseDAO;
瑙e喅鏂規硶2錛?/div>
@Autowired //榛樿鎸夌収綾誨瀷鍖歸厤錛屽悓鏍峰簲涓烘湁涓や釜瀛愮被bean錛屾墍浠ユ姏鍑哄紓甯搞?/div>
@Qualifier("loginDAO") //闄愬畾bean
private BaseDAO dao;
鍙傝冨崥瀹細
http://doc.chinaunix.net/java/200801/240056.shtml
http://stackoverflow.com/questions/10534053/autowiring-two-beans-implementing-same-interface-how-to-set-default-bean-to-au


David1228 2013-03-21 10:22 鍙戣〃璇勮
]]>鐩爣瀵硅薄娌℃湁瀹炵幇浠諱綍鎺ュ彛錛孲pring浣跨敤CGLIB搴撶敓鎴愮洰鏍囧璞$殑瀛愮被http://m.tkk7.com/ldwblog/archive/2013/03/05/396081.htmlDavid1228David1228Tue, 05 Mar 2013 06:54:00 GMThttp://m.tkk7.com/ldwblog/archive/2013/03/05/396081.htmlhttp://m.tkk7.com/ldwblog/comments/396081.htmlhttp://m.tkk7.com/ldwblog/archive/2013/03/05/396081.html#Feedback0http://m.tkk7.com/ldwblog/comments/commentRss/396081.htmlhttp://m.tkk7.com/ldwblog/services/trackbacks/396081.html鐒跺悗鎴戞洿鏂頒唬鐮佸悗鎵ц緋葷粺涓殑璇ユā鍧楋紝鍙戠幇閮ㄥ垎琛ㄦ暟鎹病鏈夊畬鏁存寔涔呭埌鏁版嵁搴撲腑銆傜湅浜嗕笅浠g爜鍜宻pring閰嶇疆鏂囦歡錛屽師鏉ヨ皟鏁村悗鐨凚iz鐨勪笟鍔$被娌℃湁閰嶇疆浜嬪姟瀵艱嚧鐨勩?br />
淇敼浜嗕笅spring閰嶇疆鏂囦歡錛坆eanNames緇戝畾浜?Biz錛?
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id= "propertyConfigurer"          
        class 
= "com.ccms.base.util.DecryptPropertyPlaceholderConfigurer" >          
     <property name="locations" value= "classpath:sysConfig.properties" />          
   </bean>      
    <!-- 
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>${dataSource.jdbcUrl}&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
        <property name="username">
            <value>${dataSource.userName}</value>
        </property>
        <property name="password">
            <value>${dataSource.password}</value>
        </property>
        <property name="maxActive">
            <value>100</value>
        </property>
        <property name="initialSize">
            <value>5</value>
        </property>
        <property name="maxIdle">
            <value>10</value>
        </property>
        <property name="minIdle">
            <value>0</value>
        </property>
        <property name="maxWait">
            <value>-1</value>
        </property>
        <property name="defaultAutoCommit">
            <value>false</value>
        </property>
        <property name="testOnBorrow">
            <value>true</value>
        </property>
        <property name="testWhileIdle">
            <value>true</value>
        </property>
        <property name="timeBetweenEvictionRunsMillis">
            <value>600000</value>
        </property>
        <property name="numTestsPerEvictionRun">
            <value>20</value>
        </property>
        <property name="minEvictableIdleTimeMillis">
            <value>3600000</value>
        </property>
    </bean>
   
-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" >
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="${dataSource.jdbcUrl}&amp;useUnicode=true&amp;characterEncoding=UTF-8" />
        <property name="user" value="${dataSource.userName}" />
        <property name="password" value="${dataSource.password}" />
          <property name="minPoolSize" value="5" />
        <property name="maxPoolSize" value="50" />
        <property name="maxStatements" value="0" />
        <property name="idleConnectionTestPeriod" value="60" />
        <property name="acquireRetryAttempts" value="3" />
    </bean>

    <!-- Session Factory -->
    <bean id="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref local="dataSource" />
        </property>
    <!-- hbm閰嶇疆鏂囦歡鐨刢lassPath璺緞 -->
        <property name="mappingDirectoryLocations">
            <list>
                <value>classpath:/com/ccms/base/mapping</value>
            </list>
        </property>

        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.generate_statistics">true</prop>
                <prop key="hibernate.connection.release_mode">auto</prop>
                <prop key="hibernate.autoReconnect">true</prop> 
                <prop key="hibernate.connection.autocommit">false</prop>
                <!-- <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop> -->
            </props>
        </property>
    </bean>

    <bean id="myTransactionManager"
        class
="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean> 

    <bean id="transactionInterceptor"
        class
="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager" ref="myTransactionManager" />
        <property name="transactionAttributes">
            <props>
                <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
            </props>
        </property>
    </bean>
    <bean  class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
        <property name="transactionInterceptor"
            ref
="transactionInterceptor" />
    </bean>
    <bean
        
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <property name="beanNames">
            <list>
                <value>*Service</value>
                <value>*Biz</value>
            </list>
        </property>
        <property name="interceptorNames">
            <list>
                <value>transactionInterceptor</value>
            </list>
        </property>
    </bean>
</beans>

鍚姩tomcat鍚庢姤鍑哄涓嬮敊璇俊鎭細
[2013-03-05 10:36:56] [ERROR] Context initialization failed - at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215) 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginBiz' defined in ServletContext resource [/WEB-INF/spring-service-resource.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:445)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:213)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:433)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1266)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
... 28 more
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:718)
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)
at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)
... 34 more
2013-3-5 10:36:56 org.apache.catalina.core.StandardContext listenerStart
涓ラ噸: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginBiz' defined in ServletContext resource [/WEB-INF/spring-service-resource.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:445)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:213)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:433)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1266)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
... 28 more
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:718)
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)
at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)
... 34 more
2013-3-5 10:36:56 org.apache.catalina.core.StandardContext start

------------------------------------------
閫氳繃浠ヤ笂閿欒鍒嗘瀽涔嬶細瀵逛簬瀹炵幇浜嗘帴鍙g殑綾伙紝鐩存帴鐢ㄤ簡JDK鐨勫姩鎬佷唬鐞嗭紝鎶婄洰鏍囧璞℃墧緇橨DK鐨凱roxy錛屾嬁鍒頒唬鐞嗗璞″氨OK浜嗐?/span>鐒惰屽浜庢病鏈夊疄鐜版帴鍙g殑綾伙紝Spring鍊熷姪浜嶤GLIB鏉ュ疄鐜頒唬鐞嗐?br />瑙e喅鍔炴硶錛?br />褰撲嬌鐢–GLIB鏉ュ疄鐜頒唬鐞嗗悗錛屾病鏈夊疄鐜版帴鍙g殑綾?br />1銆?閫氳繃鏋勯犲嚱鏁板艦寮忔敞鍏ユ椂蹇呴』鏈夐粯璁ょ殑鏋勯犲嚱鏁幫紝鍚﹀垯灝變細鍑虹幇涓婇潰鐨勫紓甯搞?br />2銆侀氳繃鐢熶駭setter鎴栬単etter鏂規硶娉ㄥ叆銆?br />3銆侀氳繃淇敼Spring鐨?span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">CglibProxyFactory宸ュ巶綾匯?br />
璇︾粏瑙f瀽鍙互鍙傜収榪欑瘒鏂囩珷錛?a >http://netfork.iteye.com/blog/286215

David1228 2013-03-05 14:54 鍙戣〃璇勮
]]>
Spring浣跨敤Quartz璋冨害鍣?瀹炵幇鏃墮棿鐐逛換鍔?Spring in Action涓枃鐗? http://m.tkk7.com/ldwblog/archive/2011/09/14/358587.htmlDavid1228David1228Wed, 14 Sep 2011 02:19:00 GMThttp://m.tkk7.com/ldwblog/archive/2011/09/14/358587.htmlhttp://m.tkk7.com/ldwblog/comments/358587.htmlhttp://m.tkk7.com/ldwblog/archive/2011/09/14/358587.html#Feedback0http://m.tkk7.com/ldwblog/comments/commentRss/358587.htmlhttp://m.tkk7.com/ldwblog/services/trackbacks/358587.htmlhttp://chorpin.iteye.com/blog/157992

http://www.quartz-scheduler.org/documentation

7.3.2  浣跨敤Quartz璋冨害鍣?
Quartz璋冨害鍣ㄤ負璋冨害宸ヤ綔鎻愪緵浜嗘洿涓板瘜鐨勬敮鎸併傚拰Java瀹氭椂鍣ㄤ竴鏍鳳紝鍙互浣跨敤Quartz鏉ユ瘡闅斿灝戞縐掓墽琛屼竴涓伐浣溿備絾Quartz姣擩ava Timer鏇村厛榪涗箣澶勫湪浜庡畠鍏佽浣犺皟搴︿竴涓伐浣滃湪鏌愪釜鐗瑰畾鐨勬椂闂存垨鏃ユ湡鎵ц銆?

鍏充簬Quartz鐨勬洿澶氫俊鎭紝鍙互璁塊棶Quartz浣嶄簬http://www.opensymphony.com/quartz鐨勪富欏點?

璁╂垜浠粠瀹氫箟鍙戦佹姤琛ㄩ偖浠剁殑宸ヤ綔寮濮嬩嬌鐢≦uartz錛?

鍒涘緩涓涓伐浣?
瀹氫箟Quartz宸ヤ綔鐨勭涓姝ユ槸鍒涘緩涓涓被鏉ュ畾涔夊伐浣溿傝鍋氬埌榪欎竴鐐癸紝浣犻渶瑕佷粠Spring鐨凲uartzJobBean涓淳鐢熷瓙綾伙紝濡傜▼搴忔竻鍗?.3鎵紺猴細

銆紼嬪簭娓呭崟7.3  瀹氫箟涓涓猀uartz宸ヤ綔
  public class EmailReportJob extends QuartzJobBean {
    public EmailReportJob() {}
    protected void executeInternal(JobExecutionContext context)
        throws JobExecutionException {
      courseService.sendCourseEnrollmentReport();
    }

    private CourseService courseService;
    public void setCourseService(CourseService courseService) {
      this.courseService = courseService;
    }
  }

QuartzJobBean鏄疩uartz涓笌Java鐨凾imerTask絳変環鐨勭被銆傚畠瀹炵幇浜唎rg.quartz.Job鎺ュ彛銆俥xecuteInternal()鏂規硶瀹氫箟浜嗗綋棰勫畾鐨勬椂鍒繪潵涓存椂搴旇鎵ц鍝簺鍔ㄤ綔銆傚湪榪欓噷錛屾濡侲mailReportTask錛屼綘鍙槸綆鍗曞湴璋冪敤浜哻ourseService灞炴х殑sendCourseEnrollmentReport()鏂規硶銆?

鍦⊿pring閰嶇疆鏂囦歡涓寜浠ヤ笅鏂瑰紡澹版槑榪欎釜宸ヤ綔錛?
  <bean id="reportJob"
       class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass">
      <value>com.springinaction.training.
           schedule.EmailReportJob</value>
    </property>
    <property name="jobDataAsMap">
      <map>
        <entry key="courseService">
          <ref bean="courseService"/>
        </entry>
      </map>
    </property>
  </bean>

鍊煎緱娉ㄦ剰鐨勬槸錛屽湪榪欓噷浣犲茍娌℃湁鐩存帴澹版槑涓涓狤mailReportJob Bean錛岃屾槸澹版槑浜嗕竴涓狫obDetailBean銆傝繖鏄嬌鐢≦uartz鏃剁殑涓涓壒鐐廣侸obDetailBean鏄疩uartz鐨刼rg.quartz.JobDetail鐨勫瓙綾伙紝瀹冭姹傞氳繃jobClass灞炴ф潵璁劇疆涓涓狫ob瀵硅薄銆?

浣跨敤Quartz鐨凧obDetail涓殑鍙︿竴涓壒鍒箣澶勬槸EmailReportJob鐨刢ourseService灞炴ф槸闂存帴璁劇疆鐨勩侸obDetail鐨刯obDataAsMap灞炴ф帴鍙椾竴涓猨ava.util.Map錛屽叾涓寘鍚簡闇瑕佽緗粰jobClass鐨勫悇縐嶅睘鎬с傚湪榪欓噷錛岃繖涓猰ap鍖呭惈浜嗕竴涓寚鍚慶ourseService Bean鐨勫紩鐢紝瀹冪殑閿間負courseService銆傚綋JobDetailBean瀹炰緥鍖栨椂錛屽畠浼氬皢courseService Bean娉ㄥ叆鍒癊mailReportJob鐨刢ourseService灞炴т腑銆?

璋冨害宸ヤ綔
鐜板湪宸ヤ綔宸茬粡琚畾涔夊ソ浜嗭紝鎺ヤ笅鏉ヤ綘闇瑕佽皟搴﹁繖涓伐浣溿俀uartz鐨刼rg.quartz.Trigger綾繪弿榪頒簡浣曟椂鍙婁互鎬庢牱鐨勯搴﹁繍琛屼竴涓猀uartz宸ヤ綔銆係pring鎻愪緵浜嗕袱涓Е鍙戝櫒錛孲impleTriggerBean鍜孋ronTriggerBean銆備綘搴旇浣跨敤鍝釜瑙﹀彂鍣紵璁╂垜浠垎鍒冨療涓涓嬭繖涓や釜瑙﹀彂鍣紝棣栧厛浠嶴impleTriggerBean寮濮嬨?

SimpleTriggerBean涓嶴cheduledTimerTask綾諱技銆備綘鍙互鐢ㄥ畠鏉ユ寚瀹氫竴涓伐浣滃簲璇ヤ互鎬庢牱鐨勯搴﹁繍琛岋紝浠ュ強錛堝彲閫夊湴錛夊湪絎竴嬈¤繍琛屽伐浣滀箣鍓嶅簲璇ョ瓑寰呭涔呫備緥濡傦紝瑕佽皟搴︽姤琛ㄥ伐浣滄瘡24灝忔椂榪愯涓嬈★紝絎竴嬈″湪1灝忔椂涔嬪悗寮濮嬭繍琛岋紝鍙互鎸夌収浠ヤ笅鏂瑰紡榪涜澹版槑錛?

  <bean id="simpleReportTrigger"       class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail">
      <ref bean="reportJob"/>
    </property>
    <property name="startDelay">
      <value>3600000</value>
    </property>
    <property name="repeatInterval">
      <value>86400000</value>
    </property>
  </bean>

灞炴obDetail瑁呴厤浜嗗皢瑕佽璋冨害鐨勫伐浣滐紝鍦ㄨ繖涓緥瀛愪腑鏄痳eportJob Bean銆傚睘鎬epeatInterval鍛婅瘔瑙﹀彂鍣ㄤ互鎬庢牱鐨勯搴﹁繍琛岃繖涓伐浣滐紙浠ユ縐掍綔涓哄崟浣嶏級銆傝繖閲岋紝鎴戜滑璁劇疆瀹冧負86400000錛屽洜姝ゆ瘡闅?4灝忔椂瀹冧細琚Е鍙戜竴嬈°備綘涔熷彲浠ラ夋嫨璁劇疆startDelay灞炴ф潵寤惰繜宸ヤ綔鐨勭涓嬈℃墽琛屻傛垜浠緗畠涓?600000錛屽洜姝ゅ湪絎竴嬈¤Е鍙戜箣鍓嶅畠浼氱瓑寰?灝忔椂銆?

璋冨害涓涓猚ron宸ヤ綔
灝界浣犲彲鑳借涓篠impleTriggerBean閫傜敤浜庡ぇ澶氭暟搴旂敤錛屼絾瀹冧粛鐒朵笉鑳芥弧瓚沖彂閫佹敞鍐屾姤琛ㄩ偖浠剁殑闇姹傘傛濡係cheduledTimerTask錛屼綘鍙兘鎸囧畾宸ヤ綔鎵ц鐨勯搴︼紝鑰屼笉鑳藉噯紜寚瀹氬畠浜庝綍鏃惰繍琛屻傚洜姝わ紝浣犳棤娉曚嬌鐢⊿impleTriggerBean鍦ㄦ瘡澶╂棭鏅?:00緇欒紼嬩富浠誨彂閫佹敞鍐屾姤琛ㄩ偖浠躲?

鐒惰岋紝CronTriggerBean鍏佽浣犳洿綺劇‘鍦版帶鍒朵換鍔$殑榪愯鏃墮棿銆傚鏋滀綘瀵筓nix鐨刢ron宸ュ叿寰堢啛鎮夛紝鍒欎細瑙夊緱CronTriggerBean寰堜翰鍒囥備綘涓嶆槸瀹氫箟宸ヤ綔鐨勬墽琛岄搴︼紝鑰屾槸鎸囧畾宸ヤ綔鐨勫噯紜繍琛屾椂闂達紙鍜屾棩鏈燂級銆備緥濡傦紝瑕佸湪姣忓ぉ鏃╀笂6:00榪愯鎶ヨ〃宸ヤ綔錛屽彲浠ユ寜鐓т互涓嬫柟寮忓0鏄庝竴涓狢ronTriggerBean錛?

  <bean id="cronReportTrigger"
       class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
      <ref bean="reportJob"/>
    </property>
    <property name="cronExpression">
      <value>0 0 6 * * ?</value>
    </property>
  </bean>

鍜孲impleTriggerBean涓鏍鳳紝jobDetail灞炴у憡璇夎Е鍙戝櫒璋冨害鍝釜宸ヤ綔銆傝繖閲屾垜浠張涓嬈¤閰嶄簡涓涓猺eportJob Bean銆傚睘鎬ronExpression鍛婅瘔瑙﹀彂鍣ㄤ綍鏃惰Е鍙戙傚鏋滀綘涓嶇啛鎮塩ron錛岃繖涓睘鎬у彲鑳界湅涓婂幓鏈夌偣紲炵錛屽洜姝よ鎴戜滑榪涗竴姝ヨ冨療涓涓嬭繖涓睘鎬с?

涓涓猚ron琛ㄨ揪寮忔湁鑷沖皯6涓紙涔熷彲鑳芥槸7涓級鐢辯┖鏍煎垎闅旂殑鏃墮棿鍏冪礌銆備粠宸﹁嚦鍙籌紝榪欎簺鍏冪礌鐨勫畾涔夊涓嬶細

1錛庣錛?–59錛?

2錛庡垎閽燂紙0–59錛?

3錛庡皬鏃訛紙0–23錛?

4錛庢湀浠戒腑鐨勬棩鏈燂紙1–31錛?

5錛庢湀浠斤紙1–12鎴朖AN–DEC錛?

6錛庢槦鏈熶腑鐨勬棩鏈燂紙1–7鎴朣UN–SAT錛?

7錛庡勾浠斤紙1970–2099錛?

姣忎竴涓厓绱犻兘鍙互鏄懼紡鍦拌瀹氫竴涓鹼紙濡?錛夛紝涓涓尯闂達紙濡?-12錛夛紝涓涓垪琛紙濡?錛?1錛?3錛夋垨涓涓氶厤絎︼紙濡?錛夈?#8220;鏈堜喚涓殑鏃ユ湡”鍜?#8220;鏄熸湡涓殑鏃ユ湡”榪欎袱涓厓绱犳槸浜掓枼鐨勶紝鍥犳搴旇閫氳繃璁劇疆涓涓棶鍙鳳紙錛燂級鏉ヨ〃鏄庝綘涓嶆兂璁劇疆鐨勯偅涓瓧孌點傝〃7.1涓樉紺轟簡涓浜沜ron琛ㄨ揪寮忕殑渚嬪瓙鍜屽畠浠殑鎰忎箟錛?

琛?.1                                            涓浜沜ron琛ㄨ揪寮忕殑渚嬪瓙

琛?nbsp; 杈?nbsp; 寮?
鎰?nbsp;   涔?

0 0 10,14,16 * * ?
姣忓ぉ涓婂崍10鐐癸紝涓嬪崍2鐐瑰拰涓嬪崍4鐐?
0 0,15,30,45 * 1-10 * ?
姣忔湀鍓?0澶╂瘡闅?5鍒嗛挓
30 0 0 1 1 ? 2012
鍦?012騫?鏈?鏃ュ崍澶滆繃30縐掓椂
0 0 8-5 ? * MON-FRI
姣忎釜宸ヤ綔鏃ョ殑宸ヤ綔鏃墮棿

瀵逛簬cronReportTrigger錛屾垜浠緗甤ronExpression涓? 0 6 * * ?鍙互鎶婂畠璇諱綔“鍦ㄤ換浣曟湀浠戒換浣曟棩鏈燂紙涓嶇鏄槦鏈熷嚑錛夌殑6鏃?鍒?縐掓墽琛岃Е鍙戝櫒銆?#8221;鎹㈠彞璇濊錛岃繖涓Е鍙戝櫒浼氬湪姣忓ぉ鏃╂櫒6:00鎵ц銆?
浣跨敤CronTriggerBean瀹屽叏鑳藉婊¤凍璇劇▼涓諱換鐨勬湡鏈涗簡銆傜幇鍦ㄥ墿涓嬭鍋氱殑鍙槸鍚姩榪欎釜宸ヤ綔浜嗐?
鍚姩宸ヤ綔
Spring鐨凷chedulerFactoryBean鏄疩uartz涓笌TimerFactoryBean絳変環鐨勭被銆傛寜鐓у涓嬫柟寮忓湪Spring閰嶇疆鏂囦歡涓0鏄庡畠錛?
  <bean class="org.springframework.scheduling.
         quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="cronReportTrigger"/>
      </list>
    </property>
  </bean>

灞炴riggers鎺ュ彈涓緇勮Е鍙戝櫒銆傜敱浜庣洰鍓嶅彧鏈変竴涓Е鍙戝櫒錛屽洜姝ゅ彧闇綆鍗曞湴瑁呴厤涓涓寘鍚玞ronReportTrigger Bean鐨勪竴涓紩鐢ㄧ殑鍒楄〃鍗沖彲銆?
鐜板湪錛屼綘宸茬粡瀹炵幇浜嗚皟搴﹀彂閫佹敞鍐屾姤琛ㄩ偖浠剁殑闇姹傘備絾鍦ㄨ繖涓繃紼嬩腑錛屼綘鍋氫簡涓浜涢澶栫殑宸ヤ綔銆傚湪寮濮嬫柊鐨勮瘽棰樹箣鍓嶏紝棣栧厛璁╂垜浠湅涓涓嬪浣曢氳繃鏇寸畝鍗曚竴浜涚殑鏂瑰紡璋冨害鎶ヨ〃閭歡銆?

紺轟緥閰嶇疆錛?
<beans>
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!--ref local="SocketJobTrigger"/>
                <ref local="RouteJobTrigger"/-->
</list>
</property>
</bean>
<!---->
<bean id="SocketJobTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="SocketJobDetail"/>
</property>
<property name="startDelay">    
    <value>10000</value>
  </property>
  <property name="repeatInterval">
    <!-- repeat every 2 minutes -->
    <value>120000</value>
  </property>
</bean>
<bean id="SocketJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref local="quartzManager"/>
</property>
<property name="targetMethod">
<value>useQuartz</value>
</property>
</bean>

<bean id="socketManager" class="com.lxh.bean.quartzManager">
</bean>
<!---->
<bean id="RouteJobTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="RouteJobDetail"/>
</property>
<property name="startDelay">    
    <value>30000</value>
  </property>
  <property name="repeatInterval">
    <value>30000</value>
  </property>
</bean>
<bean id="RouteJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref local="otherManager"/>
</property>
<property name="targetMethod">
<value>otherQuartz</value>
</property>
</bean>

<bean id="routeManager" class="com.lxh.job.otherManager">
</bean>
</beans>


David1228 2011-09-14 10:19 鍙戣〃璇勮
]]>
Spring鍒涘浜篟od Johnson灝卞姞鐩烿Mware涓浜嬭〃紺哄叴濂?/title><link>http://m.tkk7.com/ldwblog/archive/2011/08/22/357043.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Mon, 22 Aug 2011 07:09:00 GMT</pubDate><guid>http://m.tkk7.com/ldwblog/archive/2011/08/22/357043.html</guid><wfw:comment>http://m.tkk7.com/ldwblog/comments/357043.html</wfw:comment><comments>http://m.tkk7.com/ldwblog/archive/2011/08/22/357043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/ldwblog/comments/commentRss/357043.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/ldwblog/services/trackbacks/357043.html</trackback:ping><description><![CDATA[<div style="text-indent: 28px;"><span id="qnpxztn" class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 28px; ">杞澆鑷細</span><span id="drsucqn" class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 28px; ">  <a >http://developer.51cto.com/art/200908/143288.htm</a></span></div><span id="hehrqph" class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 28px; "><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; "><br /></p></span><span id="ygtgjez" class="Apple-style-span" style="color: #333333; font-family: 瀹嬩綋; line-height: 28px; "><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; "><a style="color: #004276; text-decoration: underline; ">VMware鏂ヨ祫4.2浜跨編鍏冩敹璐璖pringSource</a>錛?.6浜跨幇閲戝鍔?800涓囪偂浠斤級錛岀洰鐨勫湪浜庝粠铏氭嫙鍖栧巶鍟嗗崌綰т負浜戣綆楃殑閲嶈鍙備笌鑰呫?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">VMware鐨凜TOSteve Herrod縐癡Mware鐨剉Sphere浜戠鐞嗗鉤鍙頒笌Spring Java搴旂敤妗嗘灦絳夊伐鍏風殑緇撳悎灝嗕細澶уぇ鑺傜渷寮鍙戣呯紪鍐欓儴緗插簲鐢ㄦ墍鑺辮垂鐨勬椂闂寸簿鍔涖傛涓懼皢鎻愬崌VMware鍦≒aaS涓婄殑绔炰簤鑳藉姏銆侾aaS涓婄殑鍑犲ぇ绔炰簤鑰呭寘鎷琒alesforce.com鐨凢orce.com錛屼互鍙奊oogle App Engine銆?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">Rod Johnson鍦⊿pringSource瀹樻柟鍗氬涓婂叕甯冭繖涓娑堟伅鏃跺0縐版敹璐皢浜庝粖騫寸涓夊搴﹀畬鎴愶紝灞婃椂SpringSource灝嗘垚涓篤Mware涓嬪睘鐨勪竴涓儴闂紝鑰屼粬灝嗕粛鏄疭pringSource鐨勯瀵艱呫?strong style="font-weight: bold; text-align: center; ">浠ヤ笅鏄疪od Johnson瀵規嬈℃敹璐殑灞曟湜錛?/strong></p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">“姝ゆ鍐沖畾鏄緢鑷劧鑰岀鍚堥昏緫鐨勶細榪欏皢甯︽潵鏇村鐨勬柊鎶鏈紝騫朵笖瀵筍pring妗嗘灦浠ュ強Spring紺懼尯閮芥湁濂藉銆?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; "><strong style="font-weight: bold; text-align: center; ">鎴戝緢鍏村</strong>銆傚笇鏈涗綘涔熸槸銆傝繖灝嗘瀬鍏舵湁瓚c?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">……Spring妗嗘灦灝嗙戶緇彁渚涗紭璐ㄧ殑浼佷笟綰ava鏀寔銆傛垜浠粠鍏蟲敞寮鍙戣呭浣曞垱寤哄拰浣跨敤搴旂敤錛屽埌鍏蟲敞浠栦滑濡備綍閮ㄧ講鍜岃繍琛屼紒涓氱駭搴旂敤錛涗負姝ゆ垜浠垱寤轟簡dm Server鍜宼c Server銆傛垜浠?a style="color: #004276; text-decoration: underline; ">鏀惰喘Hyperic</a>涔熸槸涓轟簡鏀瑰杽寮鍙戣呯鐞嗕紒涓氱駭搴旂敤鐨勬柟娉曘?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">鐒惰孖T鐨勫彂灞曡榪滆繙瓚呰繃Java妗嗘灦錛屽伐鍏蜂互鍙婅繍琛屾椂鍩虹璁炬柦銆備漢浠浜庤蔣浠跺爢鏍堢殑鎯蟲硶姝e湪鏀瑰彉銆傝櫄鎷熷寲鏀瑰彉浜嗘暟鎹腑蹇冿紝鑰屼簯璁$畻鍙堝皢璧扮殑鏇磋繙銆備簯璁$畻灝嗗紑鍙戜笌鎿嶄綔鐨勭晫闄愭ā緋婂寲錛屽茍璧嬩簣寮鍙戣呮洿澶氱殑鍔涢噺錛堜笌璐d換錛夈?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">鐜板湪鐨勯棶棰樺氨鏄紝濡備綍灝哠pringSource鍦ㄦ暟鎹腑蹇冨拰浜戣綆椾腑鐨勬綔鍔涳細瀹冪殑綆鍗曪紝寮哄ぇ鍜屽疄鐢ㄨ繖浜涘ソ澶勬渶澶у寲錛熸垜浠粖騫存棭浜涙椂鍊欐浘灝濊瘯榪囧湪VMware鐨凩ab Manager涓嬬殑铏氭嫙鏈轟腑榪愯SpringSource Tool Suite涓殑Spring搴旂敤銆傝繖嬈¤寖渚嬬殑鍙嶅搷寰堝ソ銆傝孷Mware鐨剉App concept鍙堣兘澶熷皢涓嶅悓鐨勬満鍣ㄦ槧鍍忥紝涓棿浠朵互鍙婄鐞嗘帶浠剁粨鍚堝埌涓璧?#8212;—鐐瑰嚮涓涓嬶紝灝辮兘鍦ㄦ暟鎹腑蹇冨拰浜戠榪愯錛岃繖閮芥槸寰堝ソ鐨勮摑鍥俱?/p><p align="center" style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; "><a target="_blank" style="color: #004276; text-decoration: underline; "><img class="fit-image" height="314" alt="鍒涘緩-榪愯-綆$悊" src="http://images.51cto.com/files/uploadimg/20090811/134244490.jpg" width="494" border="0" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-color: initial; text-align: center; border-style: initial; border-color: initial; " /></a> </p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">涓嶸Mware鐨勫悎浣滀腑錛屾垜浠鍒掑垱寤轟竴涓畝鍗曪紝闆嗘垚錛屽垱寤?榪愯-綆$悊鍚堜竴鐨勬暟鎹腑蹇冦佺鏈変簯鍜屽叕鍏變簯鐨勮В鍐蟲柟妗堛傝繖涓柟妗堝皢铻嶅悎搴旂敤鏋舵瀯鐨勭煡璇嗭紝榪炲甫涓棿浠朵互鍙婄鐞嗘帶浠訛紝紜繚涓涓櫄鎷熺幆澧冨湪閮ㄧ講榪囩▼涓互鍙婅繍琛屾椂鐨勬渶澶ф晥鐜囧強寮規с傝繖鏄竴涓狿aaS錛屽緩绔嬪湪浣犲凡鐭ョ殑鎶鏈箣涓婏紝浠庤屾渶澶х殑鍑忓皯鑺辮垂涓庡鏉傚害銆傝繖鏄竴涓洿緇曞紑婧愩佸彲縐繪鐨勪腑闂翠歡鎶鏈殑瑙e喅鏂規錛屾棦鍙互鍦ㄤ紶緇熸暟鎹腑蹇冪殑Java EE搴旂敤鏈嶅姟鍣ㄤ笂榪愯錛屽張鍙互鍦ㄥAmazon EC2涔嬬被鐨勫脊鎬т簯涓婅繍琛岋紝涔熷彲浠ュ湪VMware騫沖彴涓婅繍琛屻?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">……涓嶸Mware鐨剉Sphere浠ュ強鍏朵粬浜戞妧鏈竴璧鳳紝鎴戜滑灝嗗湪妗嗘灦鍜屽熀紜璁炬柦涓婂甫鏉ヤ竴涓叏鏂扮殑浣撻獙銆係pringSource鐨勫簲鐢ㄦ鏋躲佹湇鍔″櫒鍙婄鐞嗚蔣浠跺皢鎴愪負VMware騫沖彴鐨勭溂鐫涘拰鑰蟲湹銆?/p><p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; background-color: transparent; text-indent: 28px; ">……SpringSource鐨勪笅涓姝ュ伐浣滃皢鏄繖浜涙柊鐨勬寫鎴橈細鍩轟簬鎴戜滑鐨凚uild/Run/Manage錛堝垱寤鴻繍琛岀鐞嗭級緋葷粺錛屾彁渚涗粠妗岄潰绔埌浜戠鐨勬渶浣寵В鍐蟲柟妗堛傝鐧句竾Java寮鍙戣呴兘鑳戒韓鍙楀埌浜戣綆楀甫鏉ョ殑濂藉銆?#8221;</p></span><br /><a ></a><img src ="http://m.tkk7.com/ldwblog/aggbug/357043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/ldwblog/" target="_blank">David1228</a> 2011-08-22 15:09 <a href="http://m.tkk7.com/ldwblog/archive/2011/08/22/357043.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://kanzhelu23.com" target="_blank">成年人在线免费观看</a>| <a href="http://jst-hosp.com" target="_blank">在线视频免费观看爽爽爽</a>| <a href="http://wuhhz.com" target="_blank">秋霞人成在线观看免费视频 </a>| <a href="http://gedebai.com" target="_blank">日本免费精品一区二区三区</a>| <a href="http://wankufan.com" target="_blank">好猛好深好爽好硬免费视频</a>| <a href="http://bjqhkf.com" target="_blank">日本xxxx色视频在线观看免费</a>| <a href="http://xwy2.com" target="_blank">国产精彩免费视频</a>| <a href="http://bjbanjia01.com" target="_blank">成人国产mv免费视频</a>| <a href="http://assbjg.com" target="_blank">伊人久久精品亚洲午夜</a>| <a href="http://1408600.com" target="_blank">亚洲经典在线观看</a>| <a href="http://ywzms.com" target="_blank">国产亚洲综合一区二区三区</a>| <a href="http://qq2071.com" target="_blank">久久久WWW免费人成精品</a>| <a href="http://kkk28.com" target="_blank">成人午夜免费福利视频</a>| <a href="http://ax445.com" target="_blank">人人狠狠综合久久亚洲高清</a>| <a href="http://516698.com" target="_blank">亚洲乱色熟女一区二区三区丝袜</a>| <a href="http://hzkjjy.com" target="_blank">亚洲精品影院久久久久久</a>| <a href="http://fsszx888.com" target="_blank">春暖花开亚洲性无区一区二区</a>| <a href="http://mtspvip.com" target="_blank">182tv免费视频在线观看</a>| <a href="http://wwwabxx.com" target="_blank">91嫩草国产在线观看免费</a>| <a href="http://htsp777.com" target="_blank">亚洲欧洲一区二区三区</a>| <a href="http://528676.com" target="_blank">亚洲精品免费观看</a>| <a href="http://gzmsijz.com" target="_blank">激情无码亚洲一区二区三区</a>| <a href="http://spxingyiquan.com" target="_blank">在线看片免费人成视频久网下载 </a>| <a href="http://gzbaida.com" target="_blank">国产亚洲欧洲Aⅴ综合一区 </a>| <a href="http://b2bautoparts.com" target="_blank">久久亚洲国产欧洲精品一</a>| <a href="http://7a37.com" target="_blank">学生妹亚洲一区二区</a>| <a href="http://78avai.com" target="_blank">AAAAA级少妇高潮大片免费看</a>| <a href="http://aizaicc.com" target="_blank">国产精品69白浆在线观看免费</a>| <a href="http://yijiazhiwei.com" target="_blank">亚洲福利在线播放</a>| <a href="http://caoporg.com" target="_blank">亚洲性色高清完整版在线观看</a>| <a href="http://fanhaogo.com" target="_blank">免费又黄又爽又猛大片午夜 </a>| <a href="http://0330196.com" target="_blank">久久精品电影免费动漫</a>| <a href="http://www456788.com" target="_blank">麻豆国产精品入口免费观看</a>| <a href="http://hongyue8.com" target="_blank">亚洲国产精品无码久久久蜜芽</a>| <a href="http://meijibear.com" target="_blank">亚洲国产视频久久</a>| <a href="http://468862.com" target="_blank">国产午夜成人免费看片无遮挡</a>| <a href="http://sewuji.com" target="_blank">麻豆成人精品国产免费</a>| <a href="http://556228.com" target="_blank">亚洲综合图片小说区热久久</a>| <a href="http://blzcn.com" target="_blank">久久精品免费网站网</a>| <a href="http://hnqkzj.com" target="_blank">日本成人免费在线</a>| <a href="http://zjjtejia.com" target="_blank">亚洲永久中文字幕在线</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>