锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲高清最新av网站,久久久久亚洲av无码专区蜜芽,亚洲综合久久夜AV http://www.tkk7.com/vagasnail/category/42605.html璇誨巻鍙層佺湅灝忚銆佸啓紼嬪簭閮芥槸鎴戞墍鐖便?/description>zh-cnFri, 06 Nov 2009 19:36:20 GMTFri, 06 Nov 2009 19:36:20 GMT60Spring MVC妗嗘灦錛堥氳繃Spring showcase紺轟緥錛?/title><link>http://www.tkk7.com/vagasnail/articles/301156.html</link><dc:creator>vagasnail</dc:creator><author>vagasnail</author><pubDate>Wed, 04 Nov 2009 13:18:00 GMT</pubDate><guid>http://www.tkk7.com/vagasnail/articles/301156.html</guid><wfw:comment>http://www.tkk7.com/vagasnail/comments/301156.html</wfw:comment><comments>http://www.tkk7.com/vagasnail/articles/301156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/vagasnail/comments/commentRss/301156.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/vagasnail/services/trackbacks/301156.html</trackback:ping><description><![CDATA[ <p> <br />1銆伮爉vc-convention</p> <p>The Spring MVC Convention Over Configuration application showcases the<br />new Convention Over Configuration support introduced in Spring 2.0.</p> <p>The web application is *very* simplistic, because the intent is<br />to convey the essence錛堟湰璐級 of the convention over configuration support錛堥厤緗枃妗e崗璁敮</p> <p>鎸侊級<br />and nothing else.</p> <p>聽聽 <!-- maps request URLs to Controller names 灝嗚姹備笌Controller綾誨悕鑷姩鍖歸厤 濡俬ello.do鑷姩</p> <p>鏌ユ壘HelloController瀹炰緥澶勭悊<br />聽聽聽 聽浣嗘槸蹇呴』瑕侀伒瀹堝懡鍚嶈鑼冿紝瀹冩槸鏍規嵁璇鋒眰璺緞URI涓殑璺緞鏉ュ尮閰岰ontroller錛屾渶鍚庝竴涓篃灝辨槸</p> <p>鏂囦歡鍚嶏紝鍦ㄩ粯璁ょ殑MethodNameResolver涓槸<br />聽聽聽 聽鐢ㄦ潵鍖歸厤Controller鐨勬柟娉曪紝濡傛灉娌℃湁璺緞錛岄偅涔堜篃灝辨牴鎹繖涓枃浠跺悕鏉ュ尮閰岰ontroller--><br />聽聽聽 <bean </p> <p>class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/></p> <p>聽聽聽 <bean id="baseRecipeController" abstract="true"><br />聽聽聽聽聽聽聽 <property name="recipeManager" ref="recipeManager"/><br />聽聽聽 </bean></p> <p>聽聽聽 <!-- Controller names are not important when using the above HandlerMapping </p> <p>implementation <br />聽聽聽 聽 綆鍗曠殑緇ф壙涓涓櫄鎷熺殑綾伙紝璁頒綇榪欓噷鐨勭戶鎵夸笉鏄湡姝f剰涔変笂鐨勫熀紜錛岃屾槸鍦⊿pring灞傛涓婄殑緇?/p> <p>鎵?-><br />聽聽聽 <bean class="org.springframework.showcase.coverc.web.SwitchBoardController"<br />聽聽聽聽聽聽聽聽聽 parent="baseRecipeController"/></p> <p>聽聽聽 <bean class="org.springframework.showcase.coverc.web.EditRecipeController"<br />聽聽聽聽聽聽聽聽聽 parent="baseRecipeController"><br />聽聽聽聽聽聽聽 <property name="commandName" value="recipe"/><br />聽聽聽聽聽聽聽 <property name="commandClass" </p> <p>value="org.springframework.showcase.coverc.domain.Recipe"/><br />聽聽聽聽聽聽聽 <property name="formView" value="editRecipe"/><br />聽聽聽聽聽聽聽 <property name="successView" value="redirect:switchboard/listRecipes.htm"/><br />聽聽聽 </bean></p> <p>聽聽聽 <!-- this bean with the well known name generates view names for us --><br />聽聽聽 <!-- not strictly required since we just want to accept the defaults--><br />聽聽聽 <!-- 鍦⊿pring2.0涓彲浠ヤ笉鎸囧畾View錛岃岀敱RequestToViewNameTranslator錛屾牴鎹姹傛潵鎻愪緵View鍚?/p> <p>縐般傚鎯充嬌鐢?br />聽聽聽 聽RequestToViewNameTranslator閭d箞璇蜂綔濡備笅閰嶇疆錛岄偅涔堝氨浼氭牴鎹姹傛潵閫夋嫨鎻愪緵View錛岀劧鍚庡湪</p> <p>viewResolver涓壘欏甸潰 --><br />聽聽聽 <bean id="viewNameTranslator" </p> <p>class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/><br /><!-- View灞傝В鏋愬櫒錛屾牴鎹紶鍥濵odelAndView瀹炰緥鍚嶇О鏉ラ夋嫨View欏甸潰 --><br />聽聽聽 <bean id="viewResolver" </p> <p>class="org.springframework.web.servlet.view.InternalResourceViewResolver"><br />聽聽聽聽聽聽聽 <property name="prefix" value="/WEB-INF/jsp/"/><br />聽聽聽聽聽聽聽 <property name="suffix" value=".jsp"/><br /></bean></p> <p> <br />嫻佺▼璇存槑錛氬湪web.xml涓厤緗細<br />聽聽聽 <servlet><br />聽聽聽聽聽聽聽 <servlet-name>coverc</servlet-name>聽聽聽聽聽聽 <servlet-</p> <p>class>org.springframework.web.servlet.DispatcherServlet</servlet-class><br />聽</servlet></p> <p>榪欎釜鍓嶇鎺у埗鍣紝鏉ヨ礋璐e皢瀹㈡埛鐨勮姹傝漿鍙戠粰鎺у埗瀵硅薄Controller錛岄拡瀵逛簬杞彂鏂規錛屾垜浠嬌鐢?br />org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping<br />鏉ユ槧灝勬帶鍒跺櫒錛屽皢璇鋒眰涓嶤ontroller綾誨悕鑷姩鍖歸厤錛屽hello.do鑷姩鏌ユ壘HelloController瀹炰緥澶勭悊錛屼絾</p> <p>鏄繀欏昏閬靛畧鍛藉悕瑙勮寖銆?br />濡傛灉鏈夋槧灝勫埌鐨凜ontroller錛岄偅涔堢敤榪欎釜Controller鏉ュ叿浣撶殑鎺у埗錛岀劧鍚庢牴鎹湪Controller涓殑</p> <p>handleRequest涓繑鍥炵殑ModelAndView鏂規硶鐨勫悕縐版潵鏌ユ壘View欏甸潰錛屽茍涓斿皢涓氬姟灞傛暟鎹潵鎻愪氦緇橵iew欏甸潰</p> <p>銆?br />鎴戜滑浣跨敤org.springframework.web.servlet.view.InternalResourceViewResolver榪欎釜viewResolver鏉?/p> <p>鏍規嵁ModelAndView鐨勫悕縐版潵閫夋嫨View 欏甸潰錛屾垜浠彲浠ラ厤緗犅犅犅犅犅犅?<property name="prefix" </p> <p>value="/WEB-INF/jsp/"/><br />聽<property name="suffix" value=".jsp"/><br />鏉ョ‘瀹歏iew欏甸潰鐨勫湴鐐癸紝prefix鏄枃浠跺す錛宻uffix鏄枃浠跺悗緙銆?br />聽鍦⊿pring2.0涓彲浠ヤ笉鎸囧畾View錛岃岀敱RequestToViewNameTranslator錛屾牴鎹姹傛潵鎻愪緵View鍚?/p> <p>縐般傚鎯充嬌鐢≧equestToViewNameTranslator閭d箞璇蜂綔濡備笅閰嶇疆錛?br /><bean id="viewNameTranslator" </p> <p>class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/><br />閭d箞灝變細鏍規嵁璇鋒眰鏉ラ夋嫨鎻愪緵View錛岀劧鍚庡湪viewResolver涓壘欏甸潰銆?/p> <p>灞炴х紪杈戝櫒錛?br />a) 鍦˙aseCommandController鍙婂叾瀛愮被涓殑灞炴х紪杈戝櫒錛岄噸鍐檌nitBinder榪欎釜鏂規硶涓敞鍐岋細<br />binder.registerCustomEditor(Long.class, new RecipeEditor());<br />聽緇ф壙鑷砵ava.beans.PropertyEditorSupport 灝嗗弬鏁拌漿鎹負鎸囧畾鐨勫璞$敤setAsText錛屽鏋滄兂鎶?/p> <p>鎸囧畾鐨勫璞¤漿鎹㈡垚String璇風敤getAsText銆?br />b) 榪樻湁閫氳繃CustomEditorConfigurer榪欎釜BeanFactoryPostProcessor鏉ラ厤緗甈ropertyEditor銆傚仛濡備笅閰?/p> <p>緗細<br /><bean id=鈥漜onfigBean鈥?class=鈥?/p> <p>org.springframework.beans.factory.config.CustomEditorConfigurer鈥?gt;<br /><property name=鈥漜ustomEditors鈥?gt;<br />聽<map><br />聽聽<entry key=鈥漮nlyfun.caterpillar.User鈥?gt;<br />聽<bean id=鈥漸serEditor鈥?class=鈥漮nlyfun.caterpillar.UserEditor鈥?><br /></entry><br /></map><br /></property><br /></bean><br />2銆伮爁ormtags<br />1)銆佸鏋淲ebApp涓病鏈夐厤緗瓾andler Mapping錛岄偅涔堝畠灝變細浣跨敤榛樿鐨凥andler Mapping 錛屼篃灝辨槸</p> <p>BeanNameUrlHandlerMapping,瀹冩牴鎹瓹ontroller瀹氫箟涓殑Bean鏍囩涓殑name灞炴х殑URI錛屾潵鍐沖畾浣跨敤鍝釜</p> <p>Controller銆?br />聽2)銆丮odelAndView涓殑addObject 閫氳繃榪欓噷寰楀埌瀛樺偍鍦╩odelObject涓殑瀵硅薄鐨勭畝鍗曠殑綾誨悕鍦ㄥ姞</p> <p>涓奀onventions鎻愪緵鐨剆uffix錛圠ist錛夊氨鎴愪負娣誨姞鍦∕odelMap涓殑瀵硅薄浜嗐?br />3)銆佸鏋滃湪Spring涓病鏈夐厤緗甊equestToViewNameTranslator錛岄偅涔堢郴緇熶細緇欐垜浠竴涓粯璁ょ殑</p> <p>DefaultRequestToViewTranslator錛屾牴鎹甎RI璇鋒眰錛屾垨鑰呮槧灝勮礬寰勪駭鐢熴傚鏋滄垜浠病鏈夋寚瀹歷iewName錛岄偅</p> <p>涔堝垯浣跨敤RequestToViewNameTranslator銆?br />ViewName浠樼粰褰撳墠鐨凪odelAndView錛岀劧鍚庢牴鎹綋鍓峂odelAndView鍙栧緱View瀵硅薄錛屾湁View瀵硅薄榪涜鏁版嵁瀛?/p> <p>鍌紝浠ュ強鏍規嵁ViewName榪涜欏甸潰鐨勮漿鍙戞垨璺寵漿銆?br />4)銆佸彲浠ュ湪涓嬮潰閰嶇疆commandName 鍜?commandClass錛?鍚﹀垯浣跨敤榛樿鐨勶紝涔熷氨鏄牴鎹繑鍥炵殑瀵硅薄鐨勫疄闄?/p> <p>鐨凜lass淇℃伅涓篶ommandClass錛屼互榛樿鐨勨渃ommand鈥濅負commandName錛屾垜浠粠JSP欏甸潰涓彲浠ヤ嬌鐢ㄨ繖涓鍚?/p> <p>縐拌鍙栨暟鎹?br />聽<bean name="/form.htm" <br /><property name=鈥漜ommandName鈥?value=鈥漸ser鈥?><br /><property name=鈥漜ommandClass鈥?value=鈥漷est.User鈥?><br />class="org.springframework.showcase.formtags.web.FormController"><br /></bean><br />5)銆佷富瑕佹祦紼?br />DispatcherServlet鐨刣oService鏂規硶璋冪敤doDispatch涓哄鐞嗚呭鐞嗗疄闄呯殑欏甸潰鍒嗘淳浠誨姟銆?br />閫氳繃servlet鐨凥andlerMapping鍙栧緱瀹為檯鐨凥andler錛岀劧鍚庡鎵樼粰涓涓猻ervlet棰勮鐨凥andlerAdapter榪涜</p> <p>瀹為檯鐨勫鐞嗗伐浣滐紝鍐嶇敤榪欎釜handlerAdapter鍙栧緱瀹為檯Controller榪涜瀹為檯鐨勬搷浣溿?br />棣栧厛璋冪敤鍏秇andlerRequest鏂規硶錛屽叾瀹炴槸璋冪敤瀹為檯鐨凙bstractController鐨刪andlerRequest鏂規硶錛岃繖閲?/p> <p>鍋氫簡涓浜泂ession鐨勫悓姝ュ鐞嗭紝鐒跺悗璋冪敤handleRequestInternal鏂規硶榪涜瀹為檯鐨勫鐞嗭紝姣忕涓嶅悓鐨?/p> <p>Controller瀹炵幇鏈夎鏂規硶鏈変笉鍚岀殑瀹炵幇錛?br />鎴戣繖閲屾槸AbstractFormController錛屾槸涓縐嶄粠request涓FormBean鑳借繘琛岃嚜鍔ㄧ殑緇勮鐨凜ontroller錛岄拡</p> <p>瀵逛笉鍚岀殑璇鋒眰isFormSubmission錛圥OST==true錛夐噰鐢ㄤ笉鍚岀殑絳栫暐錛孏ET璇鋒眰鏃惰皟鐢╯howNewForm鏂規硶鏄劇ず</p> <p>琛ㄥ崟欏甸潰錛?br />濡傛灉鏄疨OST璇鋒眰閭d箞鍒欒繘琛宺equest鍙傛暟鐨凢ormBean緇戝畾鑷姩瑁呴厤錛岃繘琛屽鐞嗗悇縐嶉獙璇佸鐞嗙瓑錛岀劧鍚庤皟鐢?/p> <p>processFormSubmission鏂規硶錛屽鏋滄湁浠諱綍閿欒鎴栧紓甯擱兘浼氳皟鐢╯howForm鏂規硶榪斿洖鐨刦orm欏甸潰錛屾渶鍚庤皟鐢?/p> <p>onSubmit榪涜欏甸潰璺寵漿銆?br />6)銆佹葷粨錛?<br />聽浣跨敤Spring鐨刦orm tag铏界劧鏄湪浣跨敤Spring MVC鐨勬渶浼樻柟妗堬紝瀹冭兘浼樼編鐨勪嬌request鐨勫弬鏁頒笌</p> <p>model妯″瀷瀵硅薄榪涜緇戝畾錛岃屼笉鍍弒truts閭f牱闇瑕佸畾涔夐澶栫殑formbean綾?褰撶劧Struts鍔ㄦ乥ean涔熷彲浠ラ伩</p> <p>鍏?錛屾墍浠ュ鏋滀嬌鐢⊿pring MVC鍔″繀璇蜂嬌鐢⊿pring Form Tag錛岃嚦浜嶸iew鐨勯昏緫鎺у埗璇蜂嬌鐢↗STL銆?/p> <p>聽</p> <img src ="http://www.tkk7.com/vagasnail/aggbug/301156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/vagasnail/" target="_blank">vagasnail</a> 2009-11-04 21:18 <a href="http://www.tkk7.com/vagasnail/articles/301156.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring jpetstore 闃呰絎旇http://www.tkk7.com/vagasnail/articles/301155.htmlvagasnailvagasnailWed, 04 Nov 2009 13:16:00 GMThttp://www.tkk7.com/vagasnail/articles/301155.htmlhttp://www.tkk7.com/vagasnail/comments/301155.htmlhttp://www.tkk7.com/vagasnail/articles/301155.html#Feedback0http://www.tkk7.com/vagasnail/comments/commentRss/301155.htmlhttp://www.tkk7.com/vagasnail/services/trackbacks/301155.html1錛巓rg.springframework.beans.support.PagedListHolder
PagedListHolder 鏄竴涓畝鍗曠姸鎬佺殑錛屽彲浠ュ鐞嗗璞″垪琛ㄧ殑鎸佹湁鑰咃紝瀹冨皢榪欎簺瀵硅薄鍒嗘垚欏甸潰銆傞〉鍙蜂粠0寮

濮嬨?
榪欎釜涓昏鍦╓EB UI涓嬌鐢ㄣ傚叿鏈変唬琛ㄧ殑錛屼竴涓疄渚嬪皢琚互鍒楃ず涓鍒梑ean錛屽皢瀹冧滑鏀劇疆鍒皊ession涓紝鐒跺悗

灝嗗畠浠鍑轟負涓涓猰odel(妯″瀷)銆傛墍鏈夌殑灞炴у皢紼嬪簭鍖杝et/get錛屼絾鏄渶甯哥敤鐨勬柟寮忔槸鏁版嵁緇戝畾錛屼緥濡傜粍

瑁呰姹傚弬鏁頒腑鐨刡ean銆俈iew灞備腑涓昏鐢ㄥ埌getter鏂規硶銆?br />浣跨敤涓涓睘鎬р渟ort鈥濓紝灝嗛氳繃涓涓猄ortDifinition瀹炵幇灝嗗熀鏈殑list鎺掑簭銆傞粯璁わ紝涓涓?/p>

MutableSortDefinition瀹炰緥灝嗚浣跨敤錛屼嬌鐢ㄧ浉鍚岀殑灞炴у皢閫掑緇欏畾鐨勫箋?br />聽BeanWrapper瑕佹眰錛岀粦瀹氭暟鎹悕蹇呴』琚О浣溾減ageSize鈥濆拰 鈥渟ort.ascending鈥濄?娉ㄦ剰錛屽悕瀛?/p>

鍜屽祵濂楄娉曞尮閰嶅悇鑷殑JSTL EL琛ㄨ揪寮忥紝渚嬪鈥渕yModelAttr.pageSize鈥濆拰

鈥渕yModelAttr.sort.ascending鈥濄?br />聽鍏跺疄錛屽氨鏄敤鏉ユ彁渚涚粰琛ㄧ幇鍒嗛〉鐢ㄧ殑銆?/p>

2.聽 org.springframework.beans.factory.InitializingBean
聽聽榪欐槸涓涓兘澶熻bean瀹炵幇鐨勬帴鍙o紝濡傛灉榪欎釜bean闇瑕佷竴鏃﹀畠鎵鏈夌殑灞炴ц娉ㄥ叆(榪樻湁鎸囧畾鐨?/p>

BeanFactoryAware鍜孉pplicationContextAware鎺ュ彛鐩稿叧鐨勬柟娉曢兘琚墽琛?鍚庡氨鍋氬嚭鍙嶅簲錛氫緥濡傦紝鎵ц涓

涓嚜瀹氫箟鐨勫垵濮嬪寲錛屾垨鑰呬粎浠呮槸媯鏌ユ墍鏈夋墭綆$殑灞炴ф槸鍚﹁姝g‘鐨勬敞鍏ャ傚彲浠ラ氳繃鎶涘嚭寮傚父闃繪緇х畫鍒?/p>

濮嬪寲銆?br />聽鎴戜滑涔熷彲浠ラ夋嫨鎸囧畾涓涓嚜瀹氫箟鐨?init-method鏉ヤ唬鏇垮疄鐜癐nitializingBean錛岃繖涓猧nit-

method閫氳繃涓涓弿榪癰ean瀹氫箟鐨刋ML瀹氫箟銆?br />聽
3.聽org.springframework.aop. AfterReturningAdvice
After returning advice 浠呬粎鍦ㄦ甯哥殑鏂規硶榪斿洖鍚庤皟鐢紝鑰屼笉鏄湪鎶涘嚭寮傚父鏃惰皟鐢ㄣ傝繖涓氱煡鑳藉鐪嬪埌

榪斿洖鍊鹼紝浣嗘槸涓嶈兘鏀瑰彉瀹冦?br />瀹冨敮涓鐨勬柟娉曚負錛歷oid afterReturning(Object returnValue, Method method, Object[] args,

Object target) throws Throwable;
聽聽鍦ㄦ寚瀹氱殑鏂規硶(鍏跺疄灝辨槸JoinPoint)鎴愬姛榪斿洖鍚庤璋冪敤銆?br />聽聽鍙傛暟 returnValue錛?鎸囧畾鐨勬柟娉曠殑榪斿洖鍊箋?br />聽聽鍙傛暟 method錛氳璋冪敤鐨勬柟娉曘?br />聽聽鍙傛暟 args錛氭柟娉曠殑鍙傛暟銆?br />聽聽鍙傛暟 target錛氭柟娉曟湡寰呯殑鐩爣銆傚彲浠ヤ嬌null銆侸oinPoint鎵鍦ㄧ殑瀵硅薄銆?br />聽聽@throws 錛氬鏋滃綋鍓嶅璞″笇鏈涗腑鏂皟鐢紝鍒欐姏鍑哄紓甯搞傛墍鏈夋柟娉曠鍚嶄腑鍏佽鎶涘嚭鐨勫紓

甯稿皢浼氳繑鍥炵粰璋冪敤鑰呫傚惁鍒欏皢浼氳鍖呰涓鴻繍琛屾湡寮傚父銆?/p>

4.聽 org.springframework.mail.SimpleMailMessage
璁捐涓涓畝鍗昺ail 淇℃伅錛屽畠鍖呮嫭鏀朵俊浜簃ail銆佸彂淇′漢mail銆佷富棰樺拰鍐呭銆?br />聽鑰冭檻JavaMailSender 鍜?JavaMailMimeMessage 鏉ュ垱寤烘洿澶嶆潅鐨勪俊鎭紝渚嬪甯︽湁闄勪歡鐨勪俊鎭紝

鐗規畩絎﹀彿錛屾垨鑰呯浜洪偖浠躲?br />5.聽 org.springframework.samples.jpetstore.domain.logic. PetStoreImpl
聽榪欓噷鏄紼嬪簭鐨勪綔鑰呭鍏惰鏄庯紝寰堟湁鎰忎箟銆?br />聽JPetStore涓昏涓氬姟瀵硅薄銆?br />榪欎釜瀵硅薄浣跨敤浜?涓狣AO瀵硅薄錛屼粠鍏蜂綋鐨勬搷浣滄寔涔呭寲API宸ヤ綔涓В鑴卞嚭鏉ャ傚洜姝わ紝铏界劧榪欎釜紼嬪簭浣跨敤

iBATIS 鍋氭暟鎹闂紝浣嗘槸濡傛灉瑕佷嬌鐢ㄥ叾瀹冪殑鎸佷箙鍖栧伐鍏鋒潵璁塊棶錛屽氨涓嶉渶瑕佷慨鏀硅繖涓被鐨勪換浣曚唬鐮併?br />榪欎釜瀵硅薄浣跨敤DAO瀹炰緥鏄氳繃Spring瀹瑰櫒渚濊禆娉ㄥ叆鐨?浣跨敤渚濊禆娉ㄥ叆浣緿AO鍙樻垚鏄彲閰嶇疆鐨?銆傛垜浠繖閲屼嬌

鐢ㄧ殑setter娉ㄥ叆錛屾毚闇叉瘡涓狣AO鐨剆etter鏂規硶緇欑敤鎴楓傝繖灝辨剰鍛崇潃鎴戜滑鍙鍦ㄩ厤緗綾葷殑bean鏃訛紝浣跨敤鈥?/p>

property鈥濆睘鎬у氨鍙互娉ㄥ叆DAO銆傝繖閲岀殑灞炴ф槸鍙啓鐨?write-only)錛氱浉搴旂殑setter鏂規硶娌℃湁瀵瑰簲鐨?/p>

getter鏂規硶銆侴etter鏂規硶鏄彲閫夌殑錛氬彧鏈夊綋浣犵殑涓氬姟瀵硅薄闇瑕佽闂繖浜涘睘鎬ф椂錛屾墠鍘繪毚闇瞘etter鏂規硶銆?br />聽鍦↗PetStore紼嬪簭涓彧鏈変竴涓綾葷殑瀵硅薄銆傚湪Spring鏈涓紝榪欏彨鍋氫竴涓渟ingleton鈥?鍗曚緥)

瀵硅薄銆傝繖灝辨剰鍛崇潃姣忎釜紼嬪簭涓婁笅鏂囬兘鍙湁涓涓傚伐鍘傚垱寤轟竴涓崟渚嬪璞★紱鍦ㄨ繖閲屾病鏈夊繀瑕佹彁渚涗竴涓鏈?/p>

鐨勬瀯閫犲櫒錛岄潤鎬佸伐鍘傛柟娉曠瓑鏄崟渚嬫ā寮忕殑浼犵粺瀹炵幇鏂瑰紡銆?br />聽榪欐槸涓涓狿OJO(鏅氱殑Java瀵硅薄錛岃嚜鎴戠淮鎶よ嚜韜殑鐘舵侊紝澶勭悊鏈韓鐨勫睘鎬у強瀛樺彇鏂規硶澶栵紝涓鑸笉

鎻愪緵浠諱綍API)銆傚畠涓嶄緷璧栦簬浠諱綍鐨凷pring API銆傚湪Spring瀹瑰櫒澶栵紝浠嶇劧鍙敤錛岃屼笖鑳藉鍦ㄤ嬌鐢↗Unit 嫻?/p>

璇曟椂錛屽垵濮嬪寲璇ュ璞°備絾鏄紝鎴戜滑浠嶇劧浣跨敤澹版槑寮忎簨鍔$鐞嗭紝鑰屼緷璧朣pring鐨凙OP銆?br />聽榪欎釜綾葷粰姣忎釜鏂規硶瀹氫箟浜嗕竴涓粯璁ょ殑浜嬪姟灞炴с?br />聽娉ㄦ剰錛岃繖涓睘鎬у畾涔変粎浠呭湪浣跨敤Commons Attribute auto-proxying (鍗充嬌鐢–ommon Attribute

鎴?Annotation鏃訛紝 Annotation鏄疭pring鎻愪緵鐨凙PI錛屾墍浠ヤ緷璧栦簡Spring API鎴朇ommon Attribute API)

鏃舵墠鏄繀欏諱嬌鐢ㄧ殑銆?br />鍦?war/WEB-INF 鐩綍涓嬬殑榛樿applicationContext.xml 鏂囦歡涓殑TransactionFactoryProxyBean涓嶉渶瑕?/p>

瀹氫箟attributes銆?br />鑰屽湪鎺ヤ笅鏉ヤ嬌鐢–ommons Attributes attribute 璇硶鏉ュ畾涔夌殑attribute銆?/p>

6.聽org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
緇檌BATIS SqlMapClientDAO鎻愪緵鐨勬柟渚跨殑鐖剁被銆傞渶瑕佽緗竴涓猄qlMapClient錛屾彁渚涚粰瀛愮被涓涓熀浜庤鍏?/p>

鐨凷qlMapClient鐨凷qlMapClinetTemplate銆?br />浣犱篃鍙互浼犻掍竴涓凡緇忛厤緗ソ鐨凷qlMapClientTemplate瀹炰緥鏉ヤ唬鏇夸紶閫掍竴涓猄qlMapClient(涔熷氨鏄唬鏇塊粯

璁ょ殑SqlMapClientTemplate錛岄粯璁ょ殑SqlMapClientTemplate浣跨敤浜嗕紶鍏ョ殑SqlMapClient)銆傝繖鏍峰氨浣垮緱浣?/p>

鎵鏈夌殑DAO鐨勫垎浜悓涓涓猄qlMapClientTemplate閰嶇疆錛屼緥濡傦紝涓涓嚜瀹氫箟鐨凷QLExceptionTranslator涔熷彲

浠ヤ嬌鐢ㄨ繖涓猄qlMapClientTemplate銆?/p>

7.聽 org.springframework.orm.ibatis.SqlMapClientTemplate
聽涓涓府鍔╃被錛岀敤鏉ョ畝鍖栦嬌鐢╥BATIS com.ibatis.sqlmap.client.SqlMapClient API榪涜鏁版嵁璁?/p>

闂紝渚濈収org.springframework.dao 寮傚父妯″瀷錛屽皢琚鏌ユу紓甯窼QLExceptions杞崲鎴愪笉鍙楁嫻嬪紓甯?/p>

DataAccessExceptions銆備嬌鐢ㄥ拰org.springframework.jdbc.core.JdbcTemplate鐩稿悓鐨?/p>

org.springframework.jdbc.support.SQLExceptionTranslator鏈哄埗銆?br />聽榪欎釜綾葷殑涓昏鏂規硶鎵ц浜嗘暟鎹闂涓虹殑鍥炶皟銆傛澶栵紝璇ョ被鎻愪緵浜嗕紬澶氱殑鏂規硶鍘婚暅鍍?/p>

com.ibatis.sqlmap.client.SqlMapExecutor鐨勬墽琛屾柟娉曘?br />聽榪欎釜妯$増涓鑸兘浣跨敤浜嗘柟渚胯岀畝鍗曠殑鏂規硶鍘繪墽琛?query/insert/update/delete 鎿嶄綔銆備絾鏄紝

鏇村鏉傜殑鎿嶄綔渚嬪鎵歸噺鏇存柊錛屽氨蹇呴』鑷畾涔変竴涓猄qlMapClientCallback錛屽父甯擱兘鏄嬌鐢ㄥ尶鍚嶇殑鍐呴儴綾誨疄

鐜般備緥濡傦細
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
聽聽 public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
聽聽聽 executor.startBatch();
聽聽聽 executor.update("insertSomething", "myParamValue");
聽聽聽 executor.update("insertSomethingElse", "myOtherParamValue");
聽聽聽 executor.executeBatch();
聽聽聽 return null;
聽聽 }
聽});
聽榪欎釜妯$増闇瑕佷竴涓猄qlMapClient鏉ュ伐浣滐紝鍙互閫氳繃鈥漵qlMapClient鈥濆睘鎬ф潵浼犻掋備竴涓猄pring

涓婁笅鏂囬兘鍏稿瀷鍦頒嬌鐢ㄤ竴涓猄qlMapClientFactoryBean鍘繪瀯寤篠qlMapClient銆傛ā鐗堣繕闇瑕侀厤緗竴涓?/p>

DataSource鏉ュ彇寰楄繛鎺ワ紝浣嗘槸錛屽鏋滃湪浼犲叆鐨凷qlMapClient涓寚瀹氫簡DataSource(鍏稿瀷鍦幫紝浣跨敤

SqlMapClientFactoryBean鐨勨漝ataSource鈥濆睘鎬?錛岄偅涔堣繖涓嶆槸蹇呴』鐨勩?br />聽鎵璋撶殑鍥炶皟灝辨槸鎸囷紝涓涓璞¢氳繃璋冪敤鍙︿竴涓璞$殑鏂規硶鏉ュ畬鎴愭棦瀹氱殑琛屼負錛堜篃鍙互璇存槸濮旀墭

緇欏彟涓涓璞℃潵瀹屾垚錛夛紝鑰屾湰瀵硅薄鍙互鍘繪墽琛屽叾瀹冪殑鎿嶄綔銆?br />8.聽 org.springframework.samples.jpetstore.web.struts. BaseAction
聽JPetStore鐨刉eb灞傜殑鎵鏈塖truts Action鐨勭埗綾?br />浠嶴ervletContext涓幏寰梂ebApplicationContext錛岀劧鍚庡張浠嶹ebApplicationContext涓幏寰?/p>

PetStoreFacade錛岀劧鍚庨氳繃涓涓猤etter鏂規硶鎻愪緵緇欏瓙綾匯?鎴栬呮槸緇ф壙Spring鎻愪緵鐨凙ctionSupport綾伙紝

瀹冮瀹炵幇浜哤ebApplicatinContext鐨勬煡鎵?浣嗘槸榪欓噷鍦⊿truts涓彃鍏ヤ簡Spring鐨凙PI銆傛墍浠ュ鍔犱簡鑰﹀悎搴?/p>

錛岃Action綾誨強鍏跺瓙綾諱笉鑳借劚紱籗pring浣跨敤,榪欓噷騫朵笉鏄渶浣沖疄璺點?br />姣旇緝濂界殑鏂瑰紡鏄細閰嶇疆Spring灝咥ction浣滀負Bean鎵樼錛屼嬌鐢–ontextLoaderPlugin錛屽茍鍦⊿pring context

銆?br />聽* 涓緗緷璧栧叧緋匯傚叿浣撶湅Spring鎵嬪唽銆?/p>

9.聽org.springframework.util.StringUtils
String宸ュ叿鏂規硶鐨勬販鍚堢被銆?br />涓昏鍦⊿pring妗嗘灦鍐呭伐浣滐紱璇峰弬鑰僇akarta's Commons Lang 鏉ヤ簡瑙f洿澶氳屽叏闈㈢殑String 宸ュ叿綾葷殑淇℃伅

銆?br />榪欎釜鎻愪緵浜嗕竴浜涘鐞哻ore Java String 鍜?StringBuffer鐨勭畝鍗曞姛鑳斤紝渚嬪鏇挎崲涓涓洰鏍囧瓧絎︿覆涓墍鏈?/p>

緇欏畾鐨勫瓙瀛楃涓茬殑鍔熻兘銆傚畠涔熸彁渚涙槗浣跨敤鐨勬柟娉曞幓杞崲瀹氱晫瀛楃涓詫紝濡侰SV瀛楃涓詫紝鍜岄泦鍚堜互鍙婃暟緇勩?br />鍏充簬鎸佷箙灞侱AO鎺ュ彛鐨勫ソ澶勶紙涓漢鎯蟲硶錛?br />聽浜嬪疄涓婏紝鍦ㄧ▼搴忎腑鏈夊緢澶氬璞′緷璧栦簡DAO錛屽鏋滄垜浠洿鎺ヤ嬌鐢―AO錛岃屼笉鏄嬌鐢―AO鐨勬帴鍙g殑璇濓紝

閭d箞濡傛灉鎴戜滑鏀瑰彉搴曞眰鐨勬暟鎹簱鏃訛紙鎴栬呮槸涓嶅悓鐨凮RM妗嗘灦錛夛紝鐩稿叧鐨勪緷璧栬DAO鐨勫璞$殑綾伙紝鎴栬呴厤緗?/p>

蹇呴』淇敼銆備緥濡傦紝鎴戜滑浣跨敤AOP鍙厤緗紪紼嬫椂錛屾垜浠氨蹇呴』淇敼緇囧叆鐨凞AO錛岃屽鏋滄垜浠嬌鐢―AO鎺ュ彛錛屾垜

浠彲浠ョ洿鎺ョ粐鍏ュ埌鎺ュ彛涓婏紝閭d箞鎴戜滑涓嶉渶瑕佷慨鏀逛換浣曚唬鐮併備笟鍔″眰鍜屾寔涔呭眰涔熷簲璇ラ氳繃鎺ュ彛閫氫俊銆?br />聽鍚屾牱錛孌AO鎺ュ彛涔熻幏寰楁墍鏈夋帴鍙e繀灝嗚幏寰楃殑濂藉錛岄偅涔堝氨鏄﹀悎搴︾殑涓嬮檷銆?br />聽鍏蜂綋鏉ヨ灝辨槸錛岄伩鍏嶅叾瀹傾PI鐨勬薄鏌擄紝澧炲姞API緇存姢鍜屼嬌鐢ㄧ殑澶嶆潅鎬э紱鍙﹀灝辨槸鎻愪緵緇欎竴涓洿鐏?/p>

媧葷殑澶氭佸疄鐜幫紝涔熷氨鏄鍦ㄦ垜浠棤娉曚慨鏀規簮鐮佺殑鎯呭喌涓嬶紝涔熻兘鏀瑰彉鍏蜂綋瀹炵幇錛岃屼笖鎴戜滑搴旇鎬繪槸閬垮厤錛?/p>

鍥犱負鎴戜滑甯稿父娌℃湁榪欐牱鐨勬潈闄愶紝閭d箞灝辮灝盇PI鐨勮璁¤呮彁渚涙洿濂界殑瀹炵幇錛堝紑--闂師鐞嗭級錛岃繖閲屾槸閫氳繃

XML閰嶇疆鏂囦歡鐨勬柟寮忋?br />聽浣嗘槸鏄劇劧錛岃繖閲屽鍔犱簡闂存帴鎬э紝澧炲姞浜嗕唬鐮侀噺錛屼技涔庡鍔犱簡澶嶆潅鎬э紝鐒惰屾伆鎭扮浉鍙嶏紝鍚堢悊鐨勪嬌

鐢ㄦ帴鍙d嬌寰楃▼搴忕殑緇撴瀯鏇村姞鐨勬竻鏅般?br />聽JPetStore浣跨敤浜哠ecureBaseAction 涓昏鏄彁渚涗簡褰揌ttpSession涓湭鍖呭惈鐧婚檰淇℃伅鏃訛紝璺沖埌鐧?/p>

闄嗛〉闈紝鍏跺疄鎵鏈夋墿灞曚簡榪欎釜綾葷殑綾葷殑瀹炰緥錛岄兘鏄渶瑕佸湪瀹夊叏鏉′歡涓?鐢ㄦ埛鏉冮檺鎺у埗)浣跨敤鐨勶紝鍏跺疄鎴戜滑

鍙互鐢╢ilter浠f浛銆備絾鏄繖鏍鋒樉鐒舵晥鐜囨洿楂橈紝浣嗘槸鑰﹀悎搴︿篃鏇撮珮浜嗭紝鍥犱負鎴戜滑涓嶅彲浠ラ厤緗嚜宸辯殑瀹夊叏絳?/p>

鐣ヤ簡銆?br />聽JPetStore鍦⊿truts Web鎺у埗浠g爜涓嬌鐢ㄤ簡澶ч噺鐨凷pring API錛屽叾瀹炶繖鏄笉鎺ㄨ崘浣跨敤鐨勶紝渚嬪錛?/p>

BaseAction涓嬌鐢ㄤ簡WebApplicationContext錛汼earchProductsAction浣跨敤浜?/p>

org.springframework.util.StringUtils錛岃繕鏈変嬌鐢ㄥ緢棰戠箒鐨?/p>

org.springframework.beans.support.PagedListHolder銆?br />聽JPetStore鍦ㄤ嬌鐢⊿truts鏃訛紝澶ч噺浣跨敤浜咹ttpSession錛屽ソ鐨勫緩璁槸灝介噺灝戜嬌鐢℉ttpSession錛屾墍

浠ヨ繖閲屼篃涓嶆槸濂界殑瀹炶返錛屼緥濡傦紝灝嗘墍鏈夌殑欏甸潰閮芥壘鍑烘潵錛屼絾鏄槸緙撳瓨鍦℉ttpSession涓紝铏界劧鎻愰珮浜嗗鎴?/p>

绔殑鐢ㄦ埛鎰熷彈錛屼絾鏄細緇欐湇鍔″櫒浠ユ矇閲嶇殑璐熸媴銆?br />聽JPetStore涓皢ActionForm鍋氫簡涓ょ浣滅敤錛屼竴縐嶄富瑕佹槸鐢ㄤ簬鏁版嵁鐨勬彁浜?Form涓敤)錛屼竴鑸互

working寮澶達紝涓縐嶄富瑕佺敤浜庡鐞嗚繃鍚庣殑鏁版嵁鐨勬樉紺哄拰鏁版嵁鐨勪繚瀛樸傚洜涓洪兘鏄瓨鍌ㄥ湪HttpSession涓紝涓?/p>

浜嗗尯鍒嗛噰鐢ㄤ簡涓嶅悓鐨勫悕瀛楋紝鑰寃orking FormBean鐨勭敓鍛藉懆鏈熸槸鍦ㄦ彁浜や簡鏁版嵁鍚庣粨鏉燂紝鍥犳鍦ㄨ繖鏃訛紝鎴戜滑

搴旇灝嗗唴瀛樼┖闂存敹鍥炪?br />



vagasnail 2009-11-04 21:16 鍙戣〃璇勮
]]>
petclinic闃呰絎旇http://www.tkk7.com/vagasnail/articles/301154.htmlvagasnailvagasnailWed, 04 Nov 2009 13:15:00 GMThttp://www.tkk7.com/vagasnail/articles/301154.htmlhttp://www.tkk7.com/vagasnail/comments/301154.htmlhttp://www.tkk7.com/vagasnail/articles/301154.html#Feedback0http://www.tkk7.com/vagasnail/comments/commentRss/301154.htmlhttp://www.tkk7.com/vagasnail/services/trackbacks/301154.html闃呰鍏ㄦ枃

vagasnail 2009-11-04 21:15 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费一级黄色毛片| 无码欧精品亚洲日韩一区夜夜嗨 | 免费羞羞视频网站| 亚洲日本久久久午夜精品| 黄色片在线免费观看 | 激情小说亚洲色图| 四虎成人精品在永久免费| 校园亚洲春色另类小说合集| vvvv99日韩精品亚洲| 一级黄色片免费观看| 亚洲精品国产美女久久久| 免费h视频在线观看| 亚洲成人免费电影| 女人张开腿等男人桶免费视频| 亚洲午夜无码久久| 成人亚洲综合天堂| 最新国产乱人伦偷精品免费网站| 久久精品国产精品亚洲艾 | 国产精品亚洲专区一区| 亚洲伊人成无码综合网 | 亚洲精品无码久久久久A片苍井空| 日本19禁啪啪无遮挡免费动图| 免费看一级高潮毛片| 亚洲av无码专区在线播放| 曰曰鲁夜夜免费播放视频| 亚洲爆乳无码专区www| 国产亚洲成归v人片在线观看| 国产午夜不卡AV免费| 亚洲人成激情在线播放| 国产成人免费片在线视频观看| 久久国产一片免费观看| 亚洲精彩视频在线观看| 国产麻豆剧传媒精品国产免费 | 国产精品免费高清在线观看| 亚洲毛片基地4455ww| 亚洲国产精品视频| 18女人水真多免费高清毛片| 国产精品亚洲色图| 日韩精品亚洲人成在线观看| 国产a级特黄的片子视频免费| 精品在线免费观看|