锘??xml version="1.0" encoding="utf-8" standalone="yes"?>色老板亚洲视频免在线观,91亚洲一区二区在线观看不卡 ,亚洲美女大bbbbbbbbbhttp://m.tkk7.com/konhon/category/3028.html蹇樻帀閬庡幓錛屽睍鏈涙湭渚嗐傛壘鍥炶嚜鎴戯紝瓚呰秺鑷垜銆? <br> <b>閫冮伩涓嶄竴瀹氳翰鐨勮繃, 闈㈠涓嶄竴瀹氭渶闅捐繃, 瀛ゅ崟涓嶄竴瀹氫笉蹇箰, 寰楀埌涓嶄竴瀹氳兘闀夸箙, 澶卞幓涓嶄竴瀹氫笉鍐嶆嫢鏈? 鍙兘鍥犱負鏌愪釜鐞嗙敱鑰屼激蹇冮毦榪? 浣嗘垜鍗磋兘鎵句釜鐞嗙敱璁╄嚜宸卞揩涔?</b><br><p> <!-- Search Google --> <left> <form method="get" action="http://www.google.com/custom" target="google_window"> <table> <tr><td nowrap="nowrap" valign="top" align="left" height="32"> <a > <img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"></img></a> <input type="text" name="q" size="31" maxlength="255" value=""></input> <input type="submit" name="sa" value="鎼滅儲"></input> <input type="hidden" name="client" value="pub-5408663347953425"></input> <input type="hidden" name="forid" value="1"></input> <input type="hidden" name="ie" value="UTF-8"></input> <input type="hidden" name="oe" value="UTF-8"></input> <input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"></input> <input type="hidden" name="hl" value="zh-CN"></input> </td></tr></table> </form> </left> <!-- Search Google --> zh-cnTue, 27 Feb 2007 11:06:55 GMTTue, 27 Feb 2007 11:06:55 GMT60spring xdoclethttp://m.tkk7.com/konhon/archive/2006/12/06/85762.htmlkonhon 浼樺崕konhon 浼樺崕Wed, 06 Dec 2006 02:05:00 GMThttp://m.tkk7.com/konhon/archive/2006/12/06/85762.htmlhttp://m.tkk7.com/konhon/comments/85762.htmlhttp://m.tkk7.com/konhon/archive/2006/12/06/85762.html#Feedback0http://m.tkk7.com/konhon/comments/commentRss/85762.htmlhttp://m.tkk7.com/konhon/services/trackbacks/85762.html spring xdoclet浣跨敤
鎵嬪伐涔﹀啓spring-beans.xml闈炲父綣佺悙錛岃屼笖濡傛灉澶氫釜紼嬪簭鍛樺悓鏃惰繘琛屼竴涓」鐩殑鏃跺欙紝鍗充嬌鍒嗘垚澶氫釜spring鏂囦歡錛屼篃寰堝鏄撲細浜х敓鍐茬獊錛屾洿鍒緇忓父閬囧埌鐨勯敊璇拰紼嬪簭鍗囩駭闂浜嗭紝榪樺ソ鏈鏂扮殑Xdoclet鍙互甯姪鎴戜滑瑙e喅榪欎釜鐑︽伡錛屽湪鏈鏂扮殑Xdoclet涓凡緇忓寘鍚簡瀵箂rping鐨勬敮鎸侊紝鍗硈rpingdoclet銆傚涓嬫槸渚嬪瓙錛?

1銆佷笅杞絘nt錛屼粠jakarta.apache.org
瀹夎鍦╟:\dev\ant錛屽畨瑁呰繃紼嬪氨涓嶈緇嗚浜嗭紝濡傛灉ant閮戒笉鎳傦紝閭g湅鏉ユ偍鏈変簺钀戒紞浜嗭紝涔熷厛鍒線涓嬬湅浜嗭紝瀛︿範涓涓媋nt鍏?

2銆佷笅杞絰doclet錛屽綋鐒舵槸xdoclet.sf.net浜嗭紝涓嬭澆鍚庢妸lib鐨勪笢瑗挎斁緗埌
c:\dev\ant\lib\xdoclet

3銆乯ava 浠g爜
鍙槸涓緥瀛愯屽凡
===================================================================
XdocletMain.java :
===================================================================
浠g爜:

/**
聽* Created by IntelliJ IDEA.
聽* User: wangzy
聽* Date: 2004-12-5
聽* @spring.bean
聽*聽 id="XdocletMain"
聽*聽 singleton="true"
聽* 涓婅堪璇存槑,榪欐槸涓猻pring鐨刡ean錛宨d涓篨docletMain錛屽鏋滅湅涓嶆噦錛屽啀琛ヤ範涓涓媥doclet
聽* @spring.property
聽*聽 聽 聽 name="bean1"
聽*聽 聽 聽 ref="Bean1"
聽* 涓婅堪璇存槑錛屾湁涓猙ean1灞炴э紝鍏寵仈鐨勪負Bean1鐨剆pring緇勪歡
聽* @spring.property
聽*聽 聽 聽name="bean2"
聽*聽 聽 聽ref="Bean2"
聽* 鍚屼笂
聽*/
public class XdocletMain {

聽 聽 public Bean1 getBean1() {
聽 聽 聽 聽 return bean1;
聽 聽 }

聽 聽 public void setBean1(Bean1 bean1) {
聽 聽 聽 聽 this.bean1 = bean1;
聽 聽 }

聽 聽 public Bean2 getBean2() {
聽 聽 聽 聽 return bean2;
聽 聽 }

聽 聽 public void setBean2(Bean2 bean2) {
聽 聽 聽 聽 this.bean2 = bean2;
聽 聽 }

聽 聽 private Bean1 bean1 = null;

聽 聽 private Bean2 bean2 = null;
聽 聽
}

===================================================================

Bean1.java :
===================================================================
浠g爜:

/**
聽* Created by IntelliJ IDEA.
聽* User: wangzy
聽* Date: 2004-12-5
聽* @spring.bean
聽*聽 聽 聽 id="Bean1"
聽*聽 聽 聽 singleton="true"
聽* 澹版槑涓涓狟ean1鐨剆pring緇勪歡
聽*/
public class Bean1 {
聽 聽
}

===================================================================
Bean2.java :

===================================================================
浠g爜:

/**
聽* Created by IntelliJ IDEA.
聽* User: wangzy
聽* Date: 2004-12-5
聽* @spring.bean
聽*聽 聽 聽 id="Bean2"
聽*聽 聽 聽 singleton="true"
聽* 綾諱技Bean1
聽*/
public class Bean2 {
}

===================================================================

涓嬫潵褰撶劧灝辨槸鏈閲嶈鐨刟nt鐨刡uild.xml浜嗭紝鍏朵腑鐩稿叧閮ㄥ垎涓猴細
浠g爜:

<!--榪欓噷鏄痻doclet鐨刲ib,榪欎簺閮戒笉鏄痑nt鐨刢ore鍖咃紝鎵浠ヨ寮曡繘鏉?-->
<path id="xdoclet.class.path">
聽 聽 <fileset dir="c:\dev\ant\lib\xdoclet">
聽 聽 聽 聽 <include name="*.jar"/>
聽 聽 </fileset>
</path>

<!--榪欓噷灝辨槸鐢熸垚spring-beans閰嶇疆浜?-->
<target name="srpingdoclet">
聽 聽 <!--瀹氫箟springdoclet task -->聽 聽
聽 聽 <taskdef
聽 聽 聽 聽 name="springdoclet"
聽 聽 聽 聽 classname="xdoclet.modules.spring.SpringDocletTask"
聽 聽 聽 聽 classpathref="xdoclet.class.path"
聽 聽 />
聽 聽 <!--榪欓噷鏍規嵁src涓嬬殑java鏂囦歡涓殑淇℃伅錛岀敓鎴恠pring-beans.xml鍒扳渟pring/spring-beans.xml鈥濇枃浠朵腑-->
聽 聽 <springdoclet destdir="spring">
聽 聽 聽 聽 <fileset dir="src" includes="**/*.java" />
聽 聽 聽 聽 <springxml destinationFile="spring-beans.xml" />
聽 聽 </springdoclet>
</target>



榪愯ant springdoclet錛岀湅鐪媠pring/spring-beans.xml鏂囦歡錛屽ぇ鍔熷憡鎴愶紒錛侊紒
鍏蜂綋璇︾粏淇℃伅鍙互鐪媥doclet鏂囨。

浠g爜:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC
聽 聽 "-//SPRING//DTD BEAN//EN"
聽 聽 "http://www.springframework.org/dtd/spring-beans.dtd">

<beans
聽 default-autowire="no"
聽 default-lazy-init="false"
聽 default-dependency-check="none"
>

聽 <bean
聽 聽 聽 id="Bean1"
聽 聽 聽 class="Bean1"
聽 聽 聽 singleton="true"
聽 >

聽 </bean>

聽 <bean
聽 聽 聽 id="XdocletMain"
聽 聽 聽 class="XdocletMain"
聽 聽 聽 singleton="true"
聽 >

聽 聽 <property name="bean1">
聽 聽 聽 <ref bean="Bean1"/>
聽 聽 </property>
聽 聽 <property name="bean2">
聽 聽 聽 <ref bean="Bean2"/>
聽 聽 </property>
聽 </bean>

聽 <bean
聽 聽 聽 id="Bean2"
聽 聽 聽 class="Bean2"
聽 聽 聽 singleton="true"
聽 >

聽 </bean>

聽 <!--
聽 聽 聽To include additional bean definitions for Spring in the generated
聽 聽 聽application context file, add a file to your XDoclet merge directory
聽 聽 聽called spring-beans.xml that contains the <bean></bean> markup.
聽 -->

</beans>


konhon 浼樺崕 2006-12-06 10:05 鍙戣〃璇勮
]]>
Spring Framework鏍囪搴撳垵瀛︽寚鍗?http://m.tkk7.com/konhon/archive/2006/05/29/48674.htmlkonhon 浼樺崕konhon 浼樺崕Mon, 29 May 2006 01:11:00 GMThttp://m.tkk7.com/konhon/archive/2006/05/29/48674.htmlhttp://m.tkk7.com/konhon/comments/48674.htmlhttp://m.tkk7.com/konhon/archive/2006/05/29/48674.html#Feedback0http://m.tkk7.com/konhon/comments/commentRss/48674.htmlhttp://m.tkk7.com/konhon/services/trackbacks/48674.html
銆銆鐩稿浜嶦JB鏉ヨ錛孲pring鏄竴涓交閲忕駭鐨凧2EE搴旂敤寮鍙戞鏋躲傝繖閲屾彁鍒扮殑杞婚噺綰ф寚鐨勬槸Spring妗嗘灦鏈韓錛岃屼笉鏄Spring鍙兘閫傜敤浜庤交閲忕駭鐨勫簲鐢ㄥ紑鍙戙係pring鐨勮交鐩堜綋鐜板湪鍏舵鏋舵湰韜殑鍩虹緇撴瀯浠ュ強瀵瑰叾浠栧簲鐢ㄥ伐鍏風殑鏀寔鍜岃閰嶈兘鍔涳紝涓嶦JB榪欑搴炵劧澶х墿鐩告瘮錛孲pring浣挎垜浠妸鍚勪釜鎶鏈眰嬈′箣闂寸殑椋庨櫓闄嶄綆銆侲JB鐨勫唴鑱氭ц緝寮猴紝姣斿鏁版嵁鎸佷箙灞傜鐞嗐佷簨鍔$鐞嗐佺敓鍛藉懆鏈熺鐞嗛兘鍏ㄩ儴浜ょ粰浜咵JB瀹瑰櫒涓鐞嗭紝鍐呰仛鎬х殑鐧界洅鐗瑰緛浣挎垜浠繀欏繪斁寮冧竴閮ㄥ垎鍙帶鎬ц屽幓淇′換瀹瑰櫒鑳藉姏銆傝孲pring鍒欐槸鑰冭檻濡備綍鈥滀笉閫犺疆瀛愨濓紝濡備綍鏇村ソ鐨勭粍瑁呰繖浜涜疆瀛愶紝璁╀粬浠洿濂界殑杞姩銆傛瘮濡傛暟鎹寔涔呭眰綆$悊鍙互浣跨敤hibernate錛屾棩蹇楃鐞嗗彲浠ヤ嬌鐢╦akartacommonlogging銆備竴涓瘮杈冩伆褰撶殑姣斿柣灝辨槸鈥滄垜浠閽夊嚑涓拤瀛愶紝涓轟簡瀹屾垚榪欎釜鐩殑錛岄敜瀛愮敓浜у晢鐢熶駭浜嗗ぇ澶у皬灝忎竴緋誨垪鐨勯敜瀛愶紝姣忎釜閿ゅ瓙閮芥湁涓濂楀鏉傜殑浣跨敤鏂規硶錛岀敤鏉ラ拤鏌愮鐗瑰埆鐨勯拤瀛愶紝緇撴灉浠ゆ垜浠ご鐤間笉鍫傝В鍐抽敜瀛愯繃澶氱殑闂錛岄氳繃spring錛屾垜浠彲浠ヤ嬌鐢ㄥ嚑縐嶉敜瀛愶紝浣嗙敤璧鋒潵璞℃槸鍙湁涓涓敜瀛愨濄?娉細榪欐璇濇槸鍦ㄧ綉涓婄湅瑙佺殑錛岃繖閲屽紩鐢ㄨ繖涓瘮鍠伙紝鎴戜釜浜鴻寰楀緢鐢熷姩)鍏充簬榪欎釜妗嗘灦涔熸湁涓浜涚畝鍗曠殑鎬葷粨錛氣淪pring鏈夊嚑涓富瑕佺殑閮ㄥ垎錛欱ean+ApplicationContext錛屼互涓縐嶇粺涓鐨勩両oC鐨勬柟寮忔煡鎵俱佺鐞嗐佺粍瑁呫佷嬌鐢ㄧ郴緇熺殑緇勪歡錛屽彇浠d竴鍒囧伐鍘傦紱鎸佷箙鍖栨鏋訛紱web妗嗘灦銆傗淛2EE妗嗘灦鈥濇槸RodJohnson鐨勬効鏅紝浠栧笇鏈汼pring涓篔2EE杞婚噺綰цВ鍐蟲柟妗堟彁渚涜嚜搴曡嚦欏剁殑鍏ㄩ潰鍩虹璁炬柦鏀寔銆傗?
銆銆涓婇潰鏄叧浜庝竴涓柊鐨凢ramework鐨勭畝鍗曚粙緇嶏紝鎹鏄湭鏉2EE鍙戝睍鐨勬柟鍚戙備互鍓嶅湪璁哄潧涓婃湁鍏充簬J2EE鏈浣崇粍鍚堢殑璁ㄨ錛屽惉璇磋繖涓狫STL+Struts(鎴杦ebwork)+Spring+Hibernate鐨勭粍鍚堝緢琚湅濂?濡傛灉浣犳劅鍏磋叮鐨勮瘽錛屽彲浠ュ埌SpringFramework涓枃璁哄潧涓婄湅鐪嬨備笅闈㈣漿鍏ユ湰鏂囩殑姝i銆?

銆銆Spring 鏍囪搴撲粙緇嶅強鐢ㄦ硶錛?

銆銆鏈枃灝嗛噸鐐逛粙緇峉pring 鎻愪緵鐨勬爣璁板簱鍙婂叾鐢ㄦ硶錛?

銆銆褰撲綘鍦ㄩ」鐩腑鐢⊿pring Framework鐨勬椂鍊欙紝琛ㄧ幇灞傚彲浠ラ夋嫨Spring Framework鑷甫鐨勬爣璁板簱銆傚綋鐒訛紝榪欎笉鏄綘鍞竴鐨勯夋嫨銆備綘鍙互閫夋嫨鍏跺畠鏍囪搴撴垨妯℃澘鏇挎崲鎶鏈係pring Framework 騫舵病鏈変負搴旂敤鎻愪緵闈炲父涓板瘜鐨勬爣璁板簱銆係pring Framework 鎻愪緵鐨勬爣璁板簱浠呬粎鏄負浜嗗鐢ㄥ氨琛岋紝瀹冨茍涓嶆槸鏃犳墍涓嶅寘鐨勩傚懙鍛碉紝榪欑偣涓嶴truts涓板瘜鐨勬爣璁板簱涓嶄竴鏍楓傚叾瀹炶繖鐐圭鍚圧odJohnson鐨勫嚭鍙戠偣錛屾棦鈥滀笉閫犺疆瀛愨濄傚綋鐒訛紝Spring Framework鏍囪搴撴湁瀹冭嚜韜殑鐗圭偣錛屽彲浠ヨ鏄釜鏈夌泭鐨勮ˉ鍏呭惂銆?

銆銆Spring 鏍囪搴撳垎綾誨涓嬶細

銆銆1銆乻pring:hasBindErrors

銆銆2銆乻pring:bind

銆銆3銆乻pring:transform

銆銆4銆乻pring:message

銆銆5銆乻pring:htmlEscape

銆銆6銆乻pring:theme

銆銆涓嬮潰鎴戜滑鏉ュ叿浣撲粙緇嶄竴涓嬬敤娉曪細

銆銆1銆乻pring:hasBindErrors

銆銆瀵瑰簲org.springframework.web.servlet.tags.BindErrorsTag鏍囪搴撳鐞嗙被銆?

銆銆榪欎釜鏍囪鎻愪緵鐢ㄤ簬緇戝畾瀵硅薄鐨別rrors錛屽鏋滆繖涓爣璁拌鐢ㄥ埌鐨勮瘽錛岄偅涔堝叧浜庤繖涓璞$殑閿欒灝嗗湪欏甸潰涓婃樉紺哄嚭鏉ャ備嬌鐢ㄨ繖涓爣璁扮殑鍓嶆彁鏉′歡鏄鍏堜嬌鐢紲spring:bind錛炴爣璁?騫朵笖錛渟pring:hasBindErrors錛炶繖涓爣璁頒笉鑳界敤鏉ヨ〃紺哄璞$殑鐘舵侊紝瀹冧粎浠呭彲浠ョ粦瀹氬璞℃湰韜拰瀵硅薄鐨勫睘鎬с?鍏蜂綋鐢ㄦ硶濡備笅錛?

錛渟pring:hasBindErrors name="priceIncrease"錛?錛渂錛濸lease fix all errors!錛?b錛?錛?spring:hasBindErrors錛?

銆銆閫氳繃榪欎釜綆鍗曠殑渚嬪瓙錛屾垜鏉ュ叿浣撹涓涓嬭繖涓爣璁扮殑灞炴у惂銆?

銆銆name錛氭槸瑕佽媯鏌ョ殑Bean鐨勫悕瀛椼傝繖涓睘鎬ф槸蹇呴渶瑕佺殑銆?

銆銆榪欓噷鏄畝鍗曠敤娉曪紝鎵浠ュ氨涓嶄粙緇嶅畠鍖呭惈鐨別rrors鍙橀噺浜嗐傚叿浣撶湅鑻辮鏂囨。銆備笅鍚屻?

銆銆2銆乻pring:bind

銆銆瀵瑰簲org.springframework.web.servlet.tags.BindTag鏍囪搴撳鐞嗙被

銆銆榪欎釜鏍囪鐢ㄦ潵涓烘煇涓猙ean鎴朾ean 鐨勫睘鎬ц祴鍊鹼紝閫氬父鍜宖orm涓璧風敤錛岀浉褰撲簬action鐨勪綔鐢ㄣ傚畠鎸囨槑琛ㄥ崟瑕佹彁浜ゅ埌閭d釜綾繪垨綾葷殑灞炴т腑鍘匯?

銆銆鍏朵腑path灞炴ф槸蹇呴』鐨勶紝鎸囨槑杞埌鐨勭被鐨勮礬寰勩備婦渚嬪涓嬶細

錛渇orm method="post"錛?
錛渢able width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5"錛?
錛渢r錛?
錛渢d alignment="right" width="20%"錛濱ncrease (%):錛?td錛?
錛渟pring:bind path="priceIncrease.percentage"錛?
錛渢d width="20%"錛?
錛渋nput type="text" name="percentage" value="錛渃:out value="${status.value}"/錛?錛?
錛?td錛?
錛渢d width="60%"錛?
錛渇ont color="red"錛烇紲c:out value="${status.errorMessage}"/錛烇紲/font錛?
錛?td錛?
錛?spring:bind錛?
錛?tr錛?
錛?table錛?
錛渂r錛?
鈥︹︹︹︹︹︹︹︾渷鐣?
錛?form錛?

銆3銆乻pring:transform

銆銆瀵瑰簲org.springframework.web.servlet.tags.TransformTag鏍囪搴撳鐞嗙被,榪欎釜鏍囪鐢ㄦ潵杞崲琛ㄥ崟涓笉涓巄ean涓殑灞炴т竴涓瀵瑰簲鐨勯偅浜涘睘鎬э紝閫氬父鍜岋紲spring:bind錛炰竴璧蜂嬌鐢ㄣ傦紲spring:transform錛炴爣璁頒負錛渟pring:bind錛炰嬌鐢ㄦ彁渚涗簡鏇村ソ鐨勬敮鎸併?

銆銆灞炴у涓嬶細

銆銆value錛氬繀闇瑕佺殑銆傚拰褰撳墠錛渟pring:bind錛炴爣璁版寚鍚戠殑bean綾葷浉鍚屻傚氨鏄綘瑕佽漿鎹㈢殑瀹炰綋綾誨悕銆?

銆銆var錛氫笉鏄繀闇鐨勩傝繖涓瓧絎︿覆琚敤鏉ョ粦瀹氳緭鍑虹粨鏋滃埌page錛宺equest, session鎴朼pplication scope.榛樿鎯呭喌杈撳嚭鍒癹sp涓?

銆銆scope錛氫笉鏄繀闇鐨勩傚墠鎻愭潯浠秜ar蹇呴』璁劇疆鐨勬儏鍐典笅銆傚畠鐨勫煎彲浠ユ槸page錛宺equest, session鎴朼pplication銆?

銆銆4銆乻pring:message 瀵瑰簲org.springframework.web.servlet.tags.MessageTag鏍囪搴撳鐞嗙被

銆銆榪欎釜鏍囪鐢ㄦ潵甯姪springframework鏀寔鍥介檯鍖栥傚拰JSTL鐨刦mt:message鏍囪綾諱技銆傚綋鐒惰繖涓爣璁板彲浠ュ緢濂界殑宸ヤ綔鐨勬湰鍦扮殑springframework妗嗘灦涓嬨?

銆銆灞炴у涓嬶細

銆銆code錛氫笉鏄繀闇鐨勩傜敤鏉ユ煡鎵緈essage,濡傛灉娌℃湁琚嬌鐢ㄧ殑璇濓紝text灝嗚浣跨敤銆?

銆銆text錛氫笉鏄繀闇鐨勩傚亣濡俢ode涓嶅瓨鍦ㄧ殑璇濓紝榛樿鏄痶ext杈撳嚭銆傚綋code鍜宼ext閮芥病鏈夎緗殑璇濓紝鏍囪灝嗚緭鍑轟負null.

銆銆var錛氫笉鏄繀闇鐨勩傝繖涓瓧絎︿覆琚敤鏉ョ粦瀹氳緭鍑虹粨鏋滃埌page錛宺equest, session鎴朼pplication scope.榛樿鎯呭喌杈撳嚭鍒癹sp涓?

銆銆scope錛氫笉鏄繀闇鐨勩傚墠鎻愭潯浠秜ar蹇呴』璁劇疆鐨勬儏鍐典笅銆傚畠鐨勫煎彲浠ユ槸page錛宺equest, session鎴朼pplication銆?

銆銆5銆乻pring:htmlEscape

銆銆瀵瑰簲org.springframework.web.servlet.tags.HtmlEscapeTag鏍囪搴撳鐞嗙被

銆銆涓嶅父鐢紝榪欓噷鐪佺暐

銆銆6銆乻pring:theme

銆銆瀵瑰簲org.springframework.web.servlet.tags.ThemeTag鏍囪搴撳鐞嗙被

銆銆涓嶅父鐢紝榪欓噷鐪佺暐

銆銆瀛︿範瀹岃繖浜涚敤娉曞悗錛岃鎴戜滑鏉ョ湅涓叿浣撶殑渚嬪瓙鍚с?

銆銆閰嶇疆姝ラ濡備笅錛?

銆銆鐩綍緇撴瀯鍥撅細

-spirngapp
-WEB-INF
-classes
-lib
-src
-war

銆銆1銆佸皢spring.tld鎷瘋礉鍒癢EB-INF鐩綍銆?

銆銆2銆佸皢spring.jar鎷瘋礉鍒癢EB-INF\lib鍖呬笅

銆銆涓句緥濡備笅錛?

銆銆鍦╳eb.xml涓厤緗ソtaglib灞炴э紝浠g爜濡備笅錛?

錛?xml聽version="1.0"聽encoding="UTF-8"?錛灺?br />錛?DOCTYPE聽web-app聽PUBLIC聽'-//Sun聽Microsystems,聽Inc.//DTD聽Web聽Application聽2.3//EN'聽'http://java.sun.com/dtd/web-app_2_3.dtd'錛灺?br />錛渨eb-app錛灺?br />錛渟ervlet錛灺?br />錛渟ervlet-name錛瀞pringapp錛?servlet-name錛灺?br />錛渟ervlet-class錛瀘rg.springframework.web.servlet.DispatcherServlet錛?servlet-class錛灺?br />錛渓oad-on-startup錛?錛?load-on-startup錛灺?br />錛?servlet錛灺?br />錛渟ervlet-mapping錛灺?br />錛渟ervlet-name錛瀞pringapp錛?servlet-name錛灺?br />錛渦rl-pattern錛?.htm錛?url-pattern錛灺?br />錛?servlet-mapping錛灺?br />錛渨elcome-file-list錛灺?br />錛渨elcome-file錛灺爄ndex.jsp聽錛?welcome-file錛灺?br />錛?welcome-file-list錛灺?br />錛渢aglib錛灺?br />錛渢aglib-uri錛?spring錛?taglib-uri錛灺?br />錛渢aglib-location錛?WEB-INF/spring.tld錛?taglib-location錛灺?br />錛?taglib錛灺?br />錛?web-app錛灺?br />

銆銆jsp欏甸潰浠g爜濡備笅錛?

錛?@聽include聽file="/WEB-INF/jsp/include.jsp"聽%錛灺?br />錛?@聽taglib聽prefix="spring"聽uri="/spring"聽%錛灺?br />錛渉tml錛灺?br />錛渉ead錛灺?br />錛渢itle錛烇紲fmt:message聽key="title"/錛烇紲/title錛灺?br />錛?head錛灺?br />錛渂ody錛灺?br />錛渉1錛灺?br />錛渇mt:message聽key="priceincrease.heading"/錛灺?br />錛?h1錛灺?br />錛渇orm聽method="post"錛灺?br />錛渢able聽width="95%"聽bgcolor="f8f8ff"聽border="0"聽cellspacing="0"聽cellpadding="5"錛灺?br />錛渢r錛灺?br />錛渢d聽alignment="right"聽width="20%"錛濱ncrease聽(%):錛?td錛灺?br />錛渟pring:bind聽path="priceIncrease.percentage"錛灺?br />錛渢d聽width="20%"錛灺?br />錛渋nput聽type="text"聽name="percentage"聽value="錛渃:out聽value="${status.value}"/錛?錛灺?br />錛?td錛灺?br />錛渢d聽width="60%"錛灺?br />錛渇ont聽color="red"錛灺?br />錛渃:out聽value="${status.errorMessage}"/錛灺?br />錛?font錛灺?br />錛?td錛灺?br />錛?spring:bind錛灺?br />錛?tr錛灺?br />錛?table錛灺?br />錛渂r錛灺?br />錛渟pring:hasBindErrors聽name="priceIncrease"錛灺?br />錛渂錛濸lease聽fix聽all聽errors!錛?b錛灺?br />錛?spring:hasBindErrors錛灺狅紲br錛烇紲br錛灺?br />錛渋nput聽type="submit"聽alignment="center"聽value="Execute"錛灺?br />錛?form錛灺?br />錛渁聽href="錛渃:url聽value="hello.htm"/錛?錛濰ome錛?a錛灺?br />錛?body錛灺?br />錛?html錛灺?br />

銆銆錛渟pring:bind錛炴爣璁扮粡甯哥敤鏉ョ粦瀹氾紲input錛炶〃鍗曞厓绱犱互渚挎彁浜ょ粰PriceIncrease.java,鍏跺疄PriceIncrease.java涓氨鏄寘鍚竴浜沢etter鍜宻etter鐨勬柟娉曠殑綾匯傚綋鐢ㄦ埛鎸変笅鎸夐挳鎻愪氦鐨勬椂鍊欙紝鍏惰〃鍗曚腑鐨勫煎疄闄呬笂灝辮framework鏀懼埌浜哖riceIncrease.java涓傦紲spring:bind錛炵粡甯稿拰form涓璧蜂嬌鐢?榪欎釜${status.errorMessage}鍜?{status.value}鏄竴涓猣ramework瀹氫箟鐨勭壒孌婂彉閲忥紝瀹冧滑琚敤鏉ユ樉紺洪敊璇俊鎭拰褰撳墠琛ㄥ崟涓殑鏁版嵁銆傚懙鍛碉紝浠婂ぉ灝卞埌姝や負姝㈠惂錛屽叧浜嶴pring Framework鏍囪搴撶殑璇︾粏鐢ㄦ硶錛岃鍙傝冨叾鏂囨。銆?img src ="http://m.tkk7.com/konhon/aggbug/48674.html" width = "1" height = "1" />

konhon 浼樺崕 2006-05-29 09:11 鍙戣〃璇勮
]]>
MultiActionController欏炲垾 http://m.tkk7.com/konhon/archive/2006/05/26/48259.htmlkonhon 浼樺崕konhon 浼樺崕Fri, 26 May 2006 01:07:00 GMThttp://m.tkk7.com/konhon/archive/2006/05/26/48259.htmlhttp://m.tkk7.com/konhon/comments/48259.htmlhttp://m.tkk7.com/konhon/archive/2006/05/26/48259.html#Feedback0http://m.tkk7.com/konhon/comments/commentRss/48259.htmlhttp://m.tkk7.com/konhon/services/trackbacks/48259.html銆瑕佸皣鐩擱棞鐨勬柟娉曠祫綣斿湪涓鍊嬫獢妗堜腑錛屽彧浣跨敤涓鍊媓andleRequest()鏂規硶浼間箮鏄笉澶犵殑錛屾垜鍊戝笇鏈涘悓涓鍊婥ontroller涓彲浠ユ牴鎿氭垜鍊戠殑鎸囧畾渚咥ction涓殑鏌愬嬫柟娉曪紝鑰屼笉鍙槸浣跨敤handleRequest()鏂規硶銆?

銆浣滅偤org.springframework.web.servlet.mvc.AbstractController涓嬬殑鍙︿竴鍊嬪瓙欏炲垾錛歰rg.springframework.web.servlet.mvc.multiaction.MultiActionController錛屽畠鍙互璁撴垜鍊戝湪涓鍊婥ontroller欏炲垾涓畾緹╁鍊嬫柟娉曪紝涓︽牴鎿氭垜鍊戠殑璜嬫眰渚嗗懠鍙暥涓殑鏌愬嬫柟娉曚締鍩瘋銆?

銆濡傛灉鎮ㄧ灜瑙truts錛屽叾DispatchAction灝遍浼兼柤Spring鐨凪ultiActionController欏炲垾錛屾墍涓嶅悓鐨勬槸錛孧ultiActionController鎿佹湁姣擲truts鐨凞ispatchAction鏇村妯e寲鐨勬柟寮忎締鍙冩暩鍖栬垏緄勭箶閫欎簺Action銆?

銆瑕佷嬌鐢∕ultiActionController錛屾偍瑕侀厤鍚堜竴鍊婱ethodNameResolver鐨勫渚嬶紝MultiActionController闋愯ō鏄疘nternalPathMethodNameResolver錛岄欐槸鏈綈″柈鐨勬柟寮忥紝鏍規摎鎮ㄦ墍緄︾殑綞插潃鏈寰岀殑妾旀鍚嶇ū渚嗗垽鏂瘋鍩瘋Action涓殑鍝竴鍊嬫柟娉曪紝浣嗛氬父鎴戝戜笉鏈冧嬌鐢↖nternalPathMethodNameResolver錛屽洜鐐洪欏氨澶卞幓浜嗕嬌鐢∕ultiActionController鐨勪竴浜涘劒榛烇紝鍍忔槸渚濊珛姹傚弮鏁鎬締姹哄畾瑕佸懠鍙殑鏂規硶銆?

銆鎴戝戦氬父鏈冧嬌鐢≒arameterMethodNameResolver鎴朠ropertiesMethodNameResolver錛屽湪涓鍊嬬恫鍧涓婄祼鍚堣珛姹傚弮鏁革紝浠ュ弮鏁鎬締姹哄畾瑕佸煼琛屽摢涓鍊婣ction錛岄欓倞浠arameterMethodNameResolver鐐轟緥錛岄鍏堬紝鎴戝戝彲浠ュ湪bean瀹氱京妾斾腑閫欓杭鎾板錛?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN""http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
        <property name="mappings"> 
            <props> 
                <prop key="/book.do">bookAction</prop> 
            </props> 
        </property> 
    </bean> 
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass"> 
            <value>org.springframework.web.servlet.view.InternalResourceView</value> 
        </property> 
        <property name="prefix"> 
            <value>/WEB-INF/jsp/</value> 
        </property> 
        <property name="suffix"> 
            <value>.jsp</value> 
        </property> 
    </bean> 

    <bean id="paraMethodResolver" 
        class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> 
        <property name="paramName"><value>method</value></property> 
        <property name="defaultMethodName"><value>list</value></property> 
    </bean> 
        
    <bean id="bookAction" class="onlyfun.caterpillar.GuestBookAction"> 
        <property name="methodNameResolver"> 
            <ref bean="paraMethodResolver"/> 
        </property> 
        <property name="testPage"> 
            <value>test</value> 
        </property> 
    </bean> 
</beans>

銆鍦╬araMethodResolver涓紝鎴戝戜嬌鐢╬aramName瀹氱京鍦╤ttp璜嬫眰涓嬌鐢╩ethod鍙冩暩渚嗘寚瀹氳鍛煎彨鐨勬柟娉曪紝鑻ユ槸璜嬫眰涓矑鏈夋寚瀹歮ethod鍙冩暩錛屽墖鏈冧嬌鐢╠efaultMethodName鎵鎸囧畾鐨勬柟娉曪紝閫欓倞鎸囧畾鐨勬槸list()鏂規硶銆?

銆GuestBookAction鏄嬬辜鎵縈ultiActionController鐨勯鍒ワ紝鐣朵腑鎴戝戝彲浠ュ畾緹╂垜鍊戝湪method鍙冩暩鎸囧畾涓嬫墍瑕佸懠鍙殑鏂規硶錛屼緥濡傦細

GuestBookAction.java
package onlyfun.caterpillar; 

import javax.servlet.http.*; 
import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.multiaction.MultiActionController; 

public class GuestBookAction extends MultiActionController { 
    privateString testPage; 
    
    public ModelAndView list(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "list"); 
    } 
    
    public ModelAndView add(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "add"); 
    } 
    
    public ModelAndView delete(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "delete"); 
    } 
    
    publicString getTestPage() { 
        return testPage; 
    } 
    
    public void setTestPage(String testPage) { 
        this.testPage = testPage; 
    } 
}

銆娉ㄦ剰鍒版垜鍊戠殑鏂規硶蹇呴爤鍖呮嫭HttpServletRequest鑸嘓ttpServletResponse浣滅偤鍙冩暩錛屾偍涔熷彲浠ヤ嬌鐢ㄥ付鏈夌涓夊嬪弮鏁窰ttpSession鐨勭増鏈?

銆涓婇潰鐨勯鍒ュ彧鏄竴鍊嬬啊鍠殑綃勪緥錛岀敤鏂兼脯瑭ultiActionController鐨勯亱浣滐紝鎴戝戞脯瑭︾敤鐨凧SP綞查爜濡備笅錛?

<html> 
<head><title>Test</title></head> 
<body> 
    <H1> "${executed}" method is executed.</H2> 
</body> 
</html>

銆鐣舵偍浣跨敤浠ヤ笅鐨勭恫鍧璜嬫眰璩囨簮鏅傦細
http://localhost:8080/springapp/book.do?method=add

銆鎴戝戠殑娓│綞查爜灝囧偝鍥炰互涓嬬殑鍏у錛?

<html> 
<head><title>Test</title></head> 
<body> 
    <H1> "add" method is executed.</H2> 
</body> 
</html>

銆鎮ㄤ篃鍙互灝囨墍鏈夌浉灝嶆噳鐨勬柟娉曞皥闁緄勭箶鍦ㄤ竴鍊嬪璦楋紙delegate錛夌墿浠朵腑錛岃屼笉鏄挵瀵湪Controller欏炲垾涓紝鐣惰珛姹備締鍒版檪錛屽皣濮旇緄﹂欏嬬墿浠朵締鍩瘋鎸囧畾鐨勬柟娉曪紝鎮ㄥ彧瑕佸畾緹㎝ultiActionController鐨刣elegate灞у嵆鍙紝渚嬪鎴戝戠殑濮旇鐗╀歡濡備笅錛?

BookActionDelegate.java
package onlyfun.caterpillar; 

import javax.servlet.http.*; 
import org.springframework.web.servlet.ModelAndView; 

public class BookActionDelegate { 
    privateString testPage; 
    
    public ModelAndView list(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "list"); 
    } 
    
    public ModelAndView add(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "add"); 
    } 
    
    public ModelAndView delete(HttpServletRequest req, HttpServletResponse res) { 
        returnnew ModelAndView(this.getTestPage(),"executed", "delete"); 
    } 
    
    publicString getTestPage() { 
        return testPage; 
    } 
    
    public void setTestPage(String testPage) { 
        this.testPage = testPage; 
    } 
}

銆鐝懼湪鎴戝戜笉鐢ㄥ畾緹〨uestBookAction浜嗭紝鐩存帴浣跨敤MultiActionController錛屽彧瑕佸畾緹〣ean瀹氱京妾斿氨濂戒簡錛?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN""http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
        <property name="mappings"> 
            <props> 
                <prop key="/book.do">bookAction</prop> 
            </props> 
        </property> 
    </bean> 
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass"> 
            <value>org.springframework.web.servlet.view.InternalResourceView</value> 
        </property> 
        <property name="prefix"> 
            <value>/WEB-INF/jsp/</value> 
        </property> 
        <property name="suffix"> 
            <value>.jsp</value> 
        </property> 
    </bean> 

    <bean id="paraMethodResolver" 
        class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> 
        <property name="paramName"><value>method</value></property> 
        <property name="defaultMethodName"><value>list</value></property> 
    </bean> 

    <bean id="bookActionDelegate" class="onlyfun.caterpillar.BookActionDelegate"> 
        <property name="testPage"> 
            <value>test</value> 
        </property> 
    </bean> 
    
    <bean id="bookAction" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController"> 
        <property name="methodNameResolver"> 
            <ref bean="paraMethodResolver"/> 
        </property> 
        <property name="delegate"> 
            <ref bean="bookActionDelegate"/> 
        </property> 
    </bean>    
</beans>

銆娓│鐨勭祼鏋滆垏涓婇潰鏄浉鍚岀殑銆?

銆浠ヤ笂瑾槑鐨勬槸ParameterMethodNameResolver錛岃孭ropertiesMethodNameResolver鐨勮ō瀹氭柟娉曟槸欏炰技鐨勶紝鏈夎垐瓚g殑瑭憋紝鍙互鐪嬩竴涓婼pring鍙冭冩墜鍐婁腑鏈夐棞MultiActionController鐨勮鏄庯紝鐣朵腑涔熸湁鍊嬬啊鏄庣殑璦畾綃勪緥銆?



konhon 浼樺崕 2006-05-26 09:07 鍙戣〃璇勮
]]>
Spring 緙栫▼鍏ラ棬鍗佸ぇ闂瑙g瓟 http://m.tkk7.com/konhon/archive/2005/08/13/10016.htmlkonhon 浼樺崕konhon 浼樺崕Sat, 13 Aug 2005 00:24:00 GMThttp://m.tkk7.com/konhon/archive/2005/08/13/10016.htmlhttp://m.tkk7.com/konhon/comments/10016.htmlhttp://m.tkk7.com/konhon/archive/2005/08/13/10016.html#Feedback0http://m.tkk7.com/konhon/comments/commentRss/10016.htmlhttp://m.tkk7.com/konhon/services/trackbacks/10016.html

銆銆1銆佸浣曞涔燬pring錛?BR>
銆銆浣犲彲浠ラ氳繃涓嬪垪閫斿緞瀛︿範spring錛?BR>
銆銆(1) spring涓嬭澆鍖呬腑doc鐩綍涓嬬殑MVC-step-by-step鍜宻ample鐩綍涓嬬殑渚嬪瓙閮芥槸姣旇緝濂界殑spring寮鍙戠殑渚嬪瓙銆?

銆銆(2) AppFuse闆嗘垚浜嗙洰鍓嶆渶嫻佽鐨勫嚑涓紑婧愯交閲忕駭妗嗘灦鎴栬呭伐鍏?Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo&#39;s WebTest,Struts Menu,Display Tag Library,OSCache,JSTL,Struts 銆?BR>
銆銆浣犲彲浠ラ氳繃AppFuse婧愪唬鐮佹潵瀛︿範spring銆?BR>
AppFuse緗戠珯錛歨ttp://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse

銆銆(3)Spring 寮鍙戞寚鍗?澶忔槙)錛坔ttp://www.xiaxin.net/Spring_Dev_Guide.rar錛?BR>
銆銆涓鏈瑂pring鐨勫叆闂ㄤ功綾?閲岄潰浠嬬粛浜嗗弽杞帶鍒跺拰渚濊禆娉ㄥ皠鐨勬蹇碉紝浠ュ強spring鐨刡ean綆$悊錛宻pring鐨凪VC錛宻pring鍜宧ibernte錛宨Batis鐨勭粨鍚堛?BR>
銆銆(4) spring瀛︿範鐨勪腑鏂囪鍧?BR>
銆銆SpringFramework涓枃璁哄潧(http://spring.jactiongroup.net)

銆銆Java瑙嗙嚎璁哄潧(http://forum.javaeye.com)鐨剆pring鏍忕洰

銆銆2銆佸埄鐢⊿pring妗嗘灦緙栫▼錛宑onsole鎵撳嵃鍑簂og4j:WARN Please initialize the log4j system properly錛?BR>
銆銆璇存槑浣犵殑log4j.properties娌℃湁閰嶇疆銆傝鎶妉og4j.properties鏀懼埌宸ョ▼鐨刢lasspath涓紝eclipse鐨刢lasspath涓篵in鐩綍錛岀敱浜庣紪璇戝悗src鐩綍涓嬬殑鏂囦歡浼氭嫹璐濆埌bin鐩綍涓嬶紝鎵浠ヤ綘鍙互鎶妉og4j.properties鏀懼埌src鐩綍涓嬨?BR>
銆銆榪欓噷緇欏嚭涓涓猯og4j.properties鐨勪緥瀛愶細

log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n

銆銆3銆佸嚭鐜?java.lang.NoClassDefFoundError?

銆銆涓鑸儏鍐典笅鏄敱浜庝綘娌℃湁鎶婂繀瑕佺殑jar鍖呮斁鍒發ib涓?BR>
銆銆姣斿浣犺閲囩敤spring鍜宧ibernate錛堝甫浜嬪姟鏀寔鐨勮瘽錛夛紝浣犻櫎浜唖pring.jar澶栬繕闇瑕乭ibernat.jar銆乤opalliance.jar銆乧glig.jar銆乯akarta-commons涓嬬殑鍑犱釜jar鍖呫?BR>
http://www.springframework.org/download.html涓嬭澆spring寮鍙戝寘錛屾彁渚涗袱縐峼ip鍖?BR>spring-framework-1.1.3-with-dependencies.zip鍜宻pring-framework-1.1.3.zip錛屾垜寤鴻浣犱笅杞絪pring-framework-1.1.3-with-dependencies.zip銆傝繖涓獄ip瑙e帇緙╁悗姣斿悗鑰呭涓涓猯ib鐩綍錛屽叾涓湁hibernate銆乯2ee銆乨om4j銆乤opalliance銆乯akarta-commons絳夊父鐢ㄥ寘銆?BR>
銆銆4銆乯ava.io.FileNotFoundException: Could not open class path resource [....hbm.xml],鎻愮ず鎵句笉鍒皒ml鏂囦歡錛?BR>
銆銆鍘熷洜涓鑸湁涓や釜錛?BR>
銆銆(1)璇ml鏂囦歡娌℃湁鍦╟lasspath涓?

銆銆(2)applicationContext-hibernate.xml涓殑xml鍚嶅瓧娌℃湁甯﹀寘鍚嶃傛瘮濡傦細

錛渂ean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"錛?BR>錛減roperty name="dataSource"錛烇紲ref bean="dataSource"/錛烇紲/property錛?BR>錛減roperty name="mappingResources"錛?BR>銆錛渓ist錛?BR>銆銆錛渧alue錛濽ser.hbm.xml錛?value錛?BR>銆銆閿欙紝鏀逛負錛?
銆銆錛渧alue錛瀋om/yz/spring/domain/User.hbm.xml錛?value錛?BR>銆錛?list錛?BR>錛?property錛?BR>錛減roperty name="hibernateProperties"錛?BR>錛減rops錛?
銆錛減rop key="hibernate.dialect"錛?net.sf.hibernate.dialect.MySQLDialect 錛?prop錛?
銆錛減rop key="hibernate.show_sql"錛瀟rue錛?prop錛?
錛?props錛?
錛?property錛?BR>錛?bean錛?

銆銆5銆乷rg.springframework.beans.NotWritablePropertyException: Invalid property &#39;postDao&#39; of bean class錛?BR>
銆銆鍑虹幇寮傚父鐨勫師鍥犳槸鍦╝pplication-xxx.xml涓璸roperty name鐨勯敊璇?BR>
銆銆錛減roperty name="...."錛?涓璶ame鐨勫悕瀛楁槸涓巄ean鐨剆et鏂規硶鐩稿叧鐨勶紝鑰屼笖瑕佹敞鎰忓ぇ灝忓啓銆?BR>
銆銆姣斿

public class PostManageImpl extends BaseManage implements PostManage {
銆private PostDAO dao = null;
銆public void setPostDAO(PostDAO postDAO){
銆銆this.dao = postDAO;
銆}
}

銆銆閭d箞xml鐨勫畾涔夊簲璇ユ槸錛?BR>
錛渂ean id="postManage" parent="txProxyTemplate"錛?BR>錛減roperty name="target"錛?BR>銆錛渂ean class="com.yz.spring.service.implement.PostManageImpl"錛?BR>銆銆錛減roperty name="postDAO"錛烇紲ref bean="postDAO"/錛烇紲/property錛?瀵?BR>銆銆錛減roperty name="dao"錛烇紲ref bean="postDAO"/錛烇紲/property錛?閿?BR>銆錛?bean錛?BR>錛?property錛?BR>錛?bean錛?

銆銆6銆丼pring涓浣曞疄鐜頒簨鍔$鐞嗭紵

銆銆棣栧厛錛屽鏋滀嬌鐢╩ysql錛岀‘瀹歮ysql涓篒nnoDB綾誨瀷銆?BR>
銆銆浜嬪姟綆$悊鐨勬帶鍒跺簲璇ユ斁鍒板晢涓氶昏緫灞傘備綘鍙互鍐欎釜澶勭悊鍟嗕笟閫昏緫鐨凧avaBean錛屽湪璇avaBean涓皟鐢―AO錛岀劧鍚庢妸璇ean鐨勬柟娉曠撼鍏pring鐨勪簨鍔$鐞嗐?BR>
銆銆姣斿錛歺ml鏂囦歡瀹氫箟濡備笅錛?BR>
錛渂ean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"錛?BR>錛減roperty name="transactionManager"錛烇紲ref bean="transactionManager"/錛烇紲/property錛?BR>錛減roperty name="transactionAttributes"錛?BR>錛減rops錛?BR>錛減rop key="save*"錛濸ROPAGATION_REQUIRED錛?prop錛?BR>錛減rop key="remove*"錛濸ROPAGATION_REQUIRED錛?prop錛?BR>錛減rop key="*"錛濸ROPAGATION_REQUIRED錛?prop錛?BR>錛?props錛?BR>錛?property錛?BR>錛?bean錛?BR>
錛渂ean id="userManage" parent="txProxyTemplate"錛?BR>銆錛減roperty name="target"錛?BR>銆銆錛渂ean class="com.yz.spring.service.implement.UserManageImpl"錛?BR>銆銆銆錛減roperty name="userDAO"錛烇紲ref bean="userDAO"/錛烇紲/property錛?BR>銆銆錛?bean錛?BR>銆錛?property錛?BR>錛?bean錛?

銆銆com.yz.spring.service.implement.UserManageImpl灝辨槸鎴戜滑鐨勫疄鐜板晢涓氶昏緫鐨凧avaBean銆傛垜浠氳繃parent鍏冪礌澹版槑鍏朵簨鍔℃敮鎸併?BR>
銆銆7銆佸浣曠鐞哠pring妗嗘灦涓嬫洿澶氱殑JavaBean錛?BR>
銆銆JavaBean瓚婂錛宻pring閰嶇疆鏂囦歡灝辮秺澶э紝榪欐牱涓嶆槗緇存姢銆備負浜嗕嬌閰嶇疆娓呮櫚錛屾垜浠彲浠ュ皢JavaBean鍒嗙被綆$悊錛屾斁鍦ㄤ笉鍚岀殑閰嶇疆鏂囦歡涓?搴旂敤鍚姩鏃跺皢鎵鏈夌殑xml鍚屾椂鍔犺澆銆?BR>
銆銆姣斿錛?BR>
銆銆DAO灞傜殑JavaBean鏀懼埌applicationContext-hibernate.xml涓紝鍟嗕笟閫昏緫灞傜殑JavaBean鏀懼埌applicationContext-service.xml涓傜劧鍚庡惎鍔ㄧ被涓皟鐢ㄤ互涓嬩唬鐮佽澆鍏ユ墍鏈夌殑ApplicationContext銆?BR>
String[] paths = {"com/yz/spring/dao/hibernate/applicationContext-hibernate.xml",
"com/yz/spring/service/applicationContext-service.xml"};
ctx = new ClassPathXmlApplicationContext(paths);

銆銆8銆亀eb搴旂敤涓浣曞姞杞紸pplicationContext錛?BR>
銆銆鍙互閫氳繃瀹氫箟web.xml錛岀敱web瀹瑰櫒鑷姩鍔犺澆銆?BR>
錛渟ervlet錛?BR>錛渟ervlet-name錛瀋ontext錛?servlet-name錛?BR>錛渟ervlet-class錛瀘rg.springframework.web.context.ContextLoaderServlet錛?servlet-class錛?BR>錛渓oad-on-startup錛?錛?load-on-startup錛?BR>錛?servlet錛?BR>
錛渃ontext-param錛?BR>錛減aram-name錛瀋ontextConfigLocation錛?param-name錛?BR>錛減aram-value錛?WEB-INF/applicationContext-hibernate.xml錛?param-value錛?BR>錛減aram-value錛?WEB-INF/applicationContext-service.xml錛?param-value錛?BR>錛?context-param錛?

銆銆9銆佸湪spring涓浣曢厤緗殑log4j?

銆銆鍦╳eb.xml涓姞鍏ヤ互涓嬩唬鐮佸嵆鍙?BR>
錛渃ontext-param錛?BR>錛減aram-name錛瀕og4jConfigLocation錛?param-name錛?BR>錛減aram-value錛?WEB-INF/log4j.properties錛?param-value錛?BR>錛?context-param錛?

銆銆10銆丼pring妗嗘灦鍏ラ棬鐨勭紪紼嬮棶棰樿В鍐充簡錛屾垜璇ュ浣曟洿娣卞湴棰嗕細Spring妗嗘灦鍛紵

銆銆榪欎袱鏈功浣犺鍘葷湅鐪嬨傝繖涓ゆ湰涔︽槸鐢盨pring鐨勪綔鑰匯od Johnson緙栧啓鐨勩?BR>
Expert One on one J2EE Design and Development
Expert One on one J2EE Development Without EJB

銆銆浣犱篃璇ョ湅鐪媘artinfowler鐨処nversion of Control Containers and the Dependency Injection pattern銆?BR>
http://www.martinfowler.com/articles/injection.html

銆銆鍐嶅ソ濂界爺璇諱竴涓媠pring鐨勬枃妗c?BR>
http://www.jactiongroup.net/reference/html/index.html錛堜腑鏂囩増錛屾湭鍏ㄩ儴緲昏瘧錛?

銆銆榪樻湁灝辨槸澶氬疄璺靛惂銆?


konhon 浼樺崕 2005-08-13 08:24 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久亚洲精品视频| 一区二区视频在线免费观看| 亚洲综合综合在线| 亚洲AV乱码久久精品蜜桃| 亚洲香蕉成人AV网站在线观看| 深夜国产福利99亚洲视频| 亚洲爆乳精品无码一区二区三区| 亚洲国产小视频精品久久久三级| 在线a亚洲v天堂网2018| 免费在线观看a级毛片| 男人的天堂亚洲一区二区三区 | 国产免费久久精品99re丫y| 中文字幕视频免费| 午夜亚洲国产精品福利| 看免费毛片天天看| 黄色网页在线免费观看| 成人A毛片免费观看网站| 久久国产免费观看精品| 8x8x华人永久免费视频| 在线看片韩国免费人成视频| 毛片免费全部播放一级| 免费永久在线观看黄网站| 亚洲成a人在线看天堂无码| 青青草原亚洲视频| 亚洲图片一区二区| 亚洲综合偷自成人网第页色| 亚洲av无码一区二区三区天堂| 日本一区二区三区在线视频观看免费| 黄色网页在线免费观看| 精品熟女少妇a∨免费久久| 啦啦啦中文在线观看电视剧免费版 | 亚洲乱亚洲乱妇无码| 国产91成人精品亚洲精品| 久久国产乱子伦精品免费午夜| 免费看男人j放进女人j免费看| 精品国产sm捆绑最大网免费站 | 日本亚洲欧洲免费天堂午夜看片女人员 | 免费无码黄网站在线看| 青青青视频免费观看| 污污网站免费观看| 我想看一级毛片免费的|