锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
榪欎釜闂鍑虹幇鍦ㄤ嬌鐢ㄥ鎿嶄綔鎺у埗鍣ㄦ儏鍐典笅錛岀浉鍏崇殑鎿嶄綔鏂規硶涓搴旂殑鏂規硶鍙傛暟鍓嶄袱浣嶅繀欏繪槸request,response瀵硅薄錛屽繀欏昏鏈夛紝鍚﹀垯浼氭姤濡備笂寮傚父銆?br />2銆佽繖涓棶棰樺洶鎯戜簡鎴戝崐澶╋紝鍦ㄧ綉涓婁篃鏈夌被浼肩殑闂錛屼絾娌℃湁姝g‘瑙e喅鏂規硶錛屽紓甯稿涓嬶細
javax.servlet.ServletException: ModelAndView [ModelAndView: materialized View is [null]
榪欎釜闂鍙兘鍑虹幇鐨勫満鏅緢澶氾紝鎴戞墍鎻忚堪鐨勫彧鏄叾涓箣涓錛屾病鏈夌浉鍏寵В鍐蟲柟娉曪紝鍙湁鏌ョ湅鐩稿叧婧愪唬鐮侊紝寮婧愬氨鏄湁榪欎釜濂藉銆?br />寮傚父鎶涘嚭浠g爜涓猴細
聽聽聽聽聽聽聽 at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:924)
鏌ョ湅浜嗙浉鍏蟲簮浠g爜錛屼竴灞備竴灞傜湅涓嬪幓
棣栧厛鍦∕odelAndView 綾誨疄渚嬫槸鍦―ispatcherServlet綾諱腑鐨刣oDispatch鏂規硶涓垱寤虹殑錛?br />鍐嶈窡韙猟oDispatch鏂規硶涓浉鍏充唬鐮佽
ha鏄竴涓帴鍙e疄鐜扮被錛屽湪璇ュ満鏅笅錛屽搴旂殑鎺ュ彛瀹炵幇綾諱負錛?br />org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
SimpleControllerHandlerAdapter綾諱腑瀵瑰簲鐨勫疄鐜頒唬鐮佷負錛?/p>
璋冪敤鐨勬槸瀵瑰簲鐨凜ontroller鎺ュ彛涓柟娉曪紝褰撳墠Controller瀵瑰簲鐨勬帴鍙e疄鐜扮被涓烘垜浠厤緗殑鑷畾涔夋帶鍒剁被錛屼竴鑸戶鎵夸簬org.springframework.web.servlet.mvc.SimpleFormController;涓灞備竴灞傚啀璺熻釜鍙戠幇錛?br />SimpleFormController緇у眰浜庡悓鍖匒bstractFormController綾伙紝鑰?br />AbstractFormController緇ф壙浜庡悓鍖匒bstractController綾伙紝瀵瑰簲鐨?br />handleRequest(request,response)鍦ˋbstractController綾諱腑瀹炵幇錛屾渶緇堣皟鐢ㄤ唬鐮佸涓嬶細
handleRequest鏂規硶涓轟竴涓娊璞℃柟娉曪紝鍦ˋbstractFormController綾諱腑瀹炵幇錛岀粓浜庢壘鍒板師鍥犱簡錛屽懙鍛?br />
鍘熷洜瀹為檯寰堢畝鍗曪紝灝卞洜涓烘垜鍦ㄨ鎻愪氦鐨勮〃鍗曚腑娌℃湁閲囩敤post鏂規硶錛屽懙鍛?br />鑰宨sFormSubmission(request)灝辨槸鏍規嵁姝ら」鍒ゆ柇錛屾墍浠ュ叾瀹為檯鎵ц鐨勪唬鐮佷負錛?br />return showNewForm(request, response);
鑰屾垜鍦ㄥ搴旂殑閰嶇疆灞炴т腑娌℃湁閰嶇疆瀵瑰簲灞炴?formView鍊鹼紝鍥犱負鎴戞湰鏉ュ氨涓嶆槸瑕佸睍鐜頒竴涓柊琛ㄥ崟銆?br />鏁呮渶鍚庤繑鍥炵殑ModelAndView涓虹┖銆?br />
闂閮借В鍐充簡錛屽彧鏄病鎯沖埌瀵規彁浜よ〃鍗曡繖涔堜弗鏍鹼紝鍏朵粬web妗嗘灦鏄病鏈夎繖縐嶉檺鍒訛紝涓嶈繃涔熸病澶氬ぇ鍏崇郴錛屽湪瀹為檯寮鍙戜腑鎴戜滑澶ч兘鏄噰鐢╬ost鏂瑰紡鎻愪氦琛ㄥ崟鐨勩?br />
瀛︿範蹇冨緱錛?br />Spring鎻愪緵涓夌鍒涘緩綾誨疄渚嬫柟娉?
聽聽聽 a銆侀氳繃鏋勯犲嚱鏁幫紝璁塊棶灞炴у彲浠ユ槸浠繪剰
聽聽聽 b銆侀氳繃瀵瑰簲綾葷殑闈欐佸伐鍘傛柟娉曪紝娉ㄦ剰涓嶈兘鏄鏈夌殑
聽聽聽聽 c銆侀氳繃宸ュ巶綾葷殑瀹炰緥宸ュ巶鏂規硶錛屾槸闈為潤鎬佺殑鏂規硶
錛嶃乥ean鑺傜偣鐩稿叧涓昏灞炴э細
聽聽聽聽 id/name聽聽聽聽聽聽聽聽聽 瀹炰緥鍚?鍒悕
聽聽聽聽 class聽聽聽聽聽聽聽聽聽聽聽聽聽 蹇呴』銆佺被鍏ㄥ悕
聽聽聽聽 singleton聽聽聽聽聽聽聽 鏄惁涓哄崟瀹炰緥錛岄粯璁や負true
聽聽聽聽 init-method聽聽聽聽 鍒濆鍖栨柟娉?br />聽聽聽聽 depends-on聽聽聽 鎸囧畾渚濊禆Bean,瀹炵幇鍦ㄨ渚濊禆Bean瀹炰緥鍒涘緩鍓嶏紝瀵逛緷璧栫殑涓涓垨澶氫釜Bean鐨勫疄渚嬪寲,聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽 聽init-method鍦ㄥ搴擝ean瀹炰緥宸茬粡鍒涘緩鍚庤皟鐢?br />聽聽聽聽 destroy-method聽聽 閲婃斁鍥炶皟鏂規硶錛屽父鐢ㄤ簬璧勬簮閲婃斁
聽聽聽聽 dependency-check 渚濊禆媯鏌?br />聽聽聽聽 parent聽聽聽聽聽聽聽聽聽聽 鎸囧畾鐖禕ean瀹炰緥錛屽噺灝戝洜緇ф壙鍏崇郴鐨勯噸澶嶉厤緗?/p>
聽聽聽聽 璇存槑闄ら厤緗甶nit-method,destory浠ュ錛屽彲浠ュ湪瀵瑰簲Bean涓疄鐜癐nitializingBean,DisposableBean涓や釜鎺ュ彛鏂規硶
聽聽聽聽 Spring瀹瑰櫒涓嶈礋璐g鐞嗛潪鍗曞疄渚嬬殑Bean
閰嶇疆bean浜嬮」錛?br />1銆佹敞鎰忓湪閫氳繃鏋勯犲櫒鍙傛暟鍖歸厤鏃訛紝蹇呴』鎸囧畾鍙傛暟鐨勫簭鍙鳳紝鍚屾椂寤鴻鏄庣‘璇存槑綾誨瀷錛?br />聽 <constructor-arg index="0"><value>128</value></constructor-arg>
聽 <constructor-arg index="1"><value>teststring</value></constructor-arg>聽
聽 鏈濂借鏄庣浉鍏沖弬鏁扮被鍨嬬被鍨嬄?
聽 <constructor-arg index="0" type="int"><value>128</value></constructor-arg>
聽 <constructor-arg index="1" type="java.lang.String"><value>teststring</value></constructor-arg>聽
聽 鍙互浣跨敤綆鍖栭厤緗?br />聽 <constructor-arg index="0" type="int"聽 value="128"/>
聽 <constructor-arg index="1" type="java.lang.String" value="testString"/>
聽聽聽
2銆佸睘鎬т負絀?br />聽聽聽 <property name="pro1><null/></property>
3銆佺┖涓?
聽聽聽 <property name="pro1><value></value></property>聽聽
浜屻佸父鐢╡lements
bean | ref | idref | value | null | list | set | map | props
璇存槑錛?br />聽聽聽聽 bean聽聽聽聽聽 鍒涘緩涓涓柊鐨刡ean瀹炰緥
聽聽聽聽 ref聽聽聽聽聽聽聽聽 寮曠敤宸茬粡鍒涘緩鐨刡ean瀹炰緥
聽聽聽聽 value聽聽聽聽聽 綆鍗曟暟鎹被鍨?br />聽聽聽聽 null聽聽聽聽聽聽聽聽 絀烘寚閽?br />聽聽聽聽 list聽聽聽聽聽聽聽聽 鍒涘緩java.util.ArrayList瀵硅薄瀹炰緥
聽聽聽聽 set聽聽聽聽聽聽聽聽 鍒涘緩java.util.LinkedHashSet瀵硅薄瀹炰緥
聽聽聽聽 map聽聽聽聽聽聽 鍒涘緩java.util.LinkedHashMap瀵硅薄瀹炰緥
聽聽聽聽 props聽聽聽聽 鍒涘緩java.util.Properties瀹炰緥聽聽聽
list,set,map鍙互澶氬眰宓屽閰嶇疆
閬楃暀闂錛?br />idref 閰嶇疆娌℃湁璧蜂綔鐢紝綾諱技value閰嶇疆錛屾祴璇曡緭鍑轟負瀛楃涓插璞★紝鏄惁閰嶇疆涓嶆紜?
涓婅堪閰嶇疆鑼冨洿鍩烘湰瑕嗙洊浜嗘垜浠紑鍙戞椂鐨刡ean浣跨敤鎯呭喌錛岃瑙侀厤緗彲浠ュ弬鑰僤td
http://www.springframework.org/dtd/spring-beans.dtd
ApplicationContext 緇ф壙浜嶣eanFactory鐩稿叧鎺ュ彛錛岄拡瀵逛紒涓氬簲鐢ㄧ駭鐨勶紝鍗犳湁鍐呭瓨杈冨
BeanFactory聽聽聽聽 鎻愪緵閰嶇疆妗嗘灦鍜屽熀鏈姛鑳斤紝閫傜敤浜庡鍐呭瓨鏈夐檺鍒剁殑鐩稿叧搴旂敤
鍔熻兘錛?br />1銆佹彁渚涙秷鎭闂紝ApplicationContext 鏈韓緇ф壙浜嶮essageSource鎺ュ彛錛?br />聽聽 ApplicationContext 鍔犺澆鏃舵煡鎵懼搴旂殑MessageSource Bean, bean id 蹇呴』涓簃essageSource
聽聽 Spring妗嗘灦鎻愪緵涓や釜MessageResource瀹炵幇錛?br />聽聽聽 org.springframework.context.support.ResourceBundleMessageSource
聽聽聽 org.springframework.context.support.StaticMessageSource
2銆佷簨浠朵紶閫?br />3銆佷嬌鐢ㄨ祫婧?br />
鐩殑錛?/strong>
聽a銆乥灝變笉瑕佽浜嗭紝閭f椂鍊欑殑浠g爜緇撴瀯鐪熸槸澶╅┈琛岀┖錛屾垜褰撴椂鍒濆錛岀淮鎶ゅ叕鍙鎬竴涓」鐩唬鐮侊紝1涓猨sp瀹炵幇涓涓ā鍧楁墍鏈夊姛鑳斤紝鎴戣姳浜嗗ソ闀挎椂闂存墠聽璇繪噦浠g爜銆?br />聽 鏃朵唬鎬繪槸鍚戝墠鍙戝睍鐨勶紝鎱㈡參鐨勭郴緇熺粨鏋勫眰嬈′笂鏄秺鏉ヨ秺娓呮櫚錛屽紑鍙戞晥鐜囦篃瓚婃潵瓚婇珮錛岀淮鎶や篃瓚婃潵瓚婂鏄擄紙鍩轟簬涓瀹氱殑鍩硅鎴愭湰錛夈?br />聽
鍦ㄥ疄闄呴」鐩腑鍑轟簬紼沖畾鎬т互鍙婂洟闃熷紑鍙戞妧鑳芥垜涓鐩存病鑰冭檻閲囩敤Spring妗嗘灦錛屾渶榪戞湁鏃墮棿灝辮鍒掑涔燬pring妗嗘灦錛屼負浠ュ悗鐨勯」鐩紑鍙戝仛鐩稿叧鐨勬妧鏈偍澶囥?/p>
鍥為【錛?/strong>
寮婧愭鏋跺湪浠ュ墠鐨勯」鐩腑鐢ㄨ繃涓嶅皯錛?struts,webwork,hibernate,鍓嶄袱鑰呭睘浜巜eb妗嗘灦錛屽悗鑰呭睘浜嶰RM妗嗘灦錛岃繖浜涙鏋跺熀鏈兘鏄晶閲嶄簬搴旂敤鐨勬煇涓眰闈紝涓嶈兘縐頒箣涓篔2EE鍏ㄩ潰鐨勬鏋訛紝寰寰鏄渶瑕佸拰鍏朵粬妗嗘灦鐩哥粨鍚堬紝鎴戝紑鍙戠殑欏圭洰閲囩敤榪囧涓嬬粍鍚堬紝鏈夌殑鏍規湰灝辨病鏈夋鏋訛紝鍙槸鑷繁鍋氫簡璁捐灝佽
a銆乻ervlet+jdbc,
b銆乻ervlet+jsp+javabean+jdbc,
c銆乻truts+BD+DAO ,
d銆亀ebwork+ejb+hibernate
浣跨敤浣撲細錛?/strong>
聽鐩稿鑰岃█鍑轟簬璁捐鐞嗗康鏉ヨ錛屼釜浜烘洿鍠滄webwork+hibernate妗嗘灦緇勫悎銆?/font>聽
聽甯告湁浜鴻璁哄悓絳夊紑鍙戝眰闈㈡鏋剁殑浼樼己鐐癸紝鎴戞墍灞炰駭鍝佺殑鍙﹀涓涓」鐩洟闃熸浘緇忎負欏圭洰鍚庣畫寮鍙?搴旇閲囩敤struts榪樻槸webwork浜夎鐨勪笉鍙紑浜わ紝聽鍏跺疄涓漢璁や負struts,webwork閮芥槸闈炲父濂界殑web妗嗘灦錛岄兘鏈夎嚜韜殑浼樼己鐐癸細
聽struts寮鍒泈eb MVC妗嗘灦涔嬪厛娌籌紝2003錛?004騫村紑鍙戠殑欏圭洰鍩烘湰閮芥槸閲囩敤struts妗嗘灦錛堝綋鏃舵嫑鑱樹漢鐨勬椂鍊欏父闂細涓嶄細struts錛屼細鍩烘湰灝辨嫑浜喡狅級錛屽疄闄匨VC璁捐鐞嗗康寰堟棭灝辨彁鍑轟簡錛屽湪j2SE涓湁寰堝浣跨敤涔嬪錛屼絾褰撴椂娌℃湁涓涓獁eb妗嗘灦寮鍙戜腑寰堝ソ鐨勮瘡褰昏璁捐鐞嗗康錛岀洿鍒皊truts聽鍑虹幇錛堝彲鑳芥湁錛屽彧鏄病鏈塧pache鏇村紩浜烘敞鎰忥級銆?br />
聽struts浼樼偣浣跨敤鐢ㄦ埛澶氾紝鐩稿叧鎶鏈枃妗f瘮杈冨叏闈紝寮鍙戦亣鍒扮殑闂鐩稿叧妗堜緥涔熸瘮杈冨銆佹瘮杈冨鏄撹В鍐籌紝妗嗘灦鏇村姞紼沖畾(榪欎竴鐐歸潪甯擱噸瑕侊級銆?br />聽
聽webwork鐩稿浜巗truts鏉ヨ錛岀殑紜湁涓嶅皯浼樺紓涔嬪錛岋紙涔熸槸鎯呯悊涔嬩腑鐨勪簨錛屽悗鍙戝竷鐨勬鏋跺鏋滃啀娌℃湁浼樼偣鍒漢涔熶笉浼氫嬌鐢級
聽涓漢璁や負鍦ㄥ紑鍙戜笂涓昏鏈変互涓嬪嚑鐐癸細
聽1銆侀〉闈㈡暟鎹皝瑁呮垚鍊煎璞″姛鑳芥瘮struts寮哄ぇ錛寃ebwork閲囩敤ognl綾誨瀷杞寲銆?br />聽struts鍙兘瀵圭畝鍗曠被鍨嬬殑鏁版嵁瀵硅薄浠ュ強鏂囦歡瀵硅薄灝佽鎴愬煎璞?聽鑰寃ebwork灝佽鐨勫煎璞″熀鏈病鏈夐檺鍒訛紝鍊煎璞″睘鎬ц繕鍙互鏄疞ist,Map榪欎簺瀵硅薄錛堣繖涓壒鎬у湪鎴戜滑寮鍙戜竴浜涙壒閲忔暟鎹佸鏉傛暟鎹鐞嗘椂闈炲父鏂逛究錛夛紝鍑忓皯寰堝浠g爜閲忥紝浠g爜闈炲父鏁存磥銆?br />聽
聽2銆佹嫤鎴櫒鍔熻兘
聽鎷︽埅鍣ㄦ槸webwork鐨勪竴涓寒鐐癸紝瀹為檯涓婁篃鏄笟鐣屾瘮杈冩祦琛岀殑AOP鐨勪竴涓綋鐜幫紝鍦ㄥ疄闄呭紑鍙戜腑浣犲彲浠ラ厤緗粯璁ょ殑鎷︽埅鍣紝聽涔熷彲浠ヤ負鍗曠嫭鐨勬ā鍧楁寚瀹氱壒瀹氱殑鎷︽埅鍣紝騫朵笖鍙嚜瀹氫箟鎷︽埅鍣紝action鎵ц鍓嶅悗鎷︽埅閮藉彲浠ャ偮?br />聽
聽3銆佸崟鍏冩祴璇曟瘮杈冩柟渚?br />聽鏈鏃╀嬌鐢╯truts妗嗘灦寮鍙戞祴璇曟椂錛岀浉鍏崇殑鍗曞厓嫻嬭瘯鍩烘湰鏄笉濂藉仛鐨勶紝鏃犳硶鑴辯web鐜錛屾祴璇曢兘鏄彧鍋氶泦鎴愭祴璇曘佺郴緇熸祴璇曘?br />聽浣跨敤webwork鍙互綆鍗曞action鐩稿叧灞炴ц祴鍊鹼紝鍙互鐩稿叧鐨勫崟鍏冩祴璇曪紝褰撶劧鍓嶆彁鏄湪瀵瑰簲action涓病鏈夊紩鐢╳eb鐜鐩稿叧鐨勫璞°偮?br />聽鍏跺疄webwork妗嗘灦鏍稿績榪樻槸xwork妗嗘灦錛屾渶鏃╂鏋朵嬌鐢ㄥ湪C/S緇撴瀯涓嬶紝webwork鍙槸xwork鐨勪竴涓湪web鐜鐨勫疄鐜幫紝鍙槸ActionContext聽涓婁笅鏂囧彂鐢熶簡鍙樺寲錛屾墍浠ヨaction鑳藉鍋氬埌鑴辯web鐜涔熸槸鎯呯悊涔嬩腑鐨勩?/p>
4銆侀厤緗枃浠?br />webwork閰嶇疆鏂囦歡鍙互閲囩敤寮曠敤銆佺戶鎵垮叾浠栭厤緗枃浠舵柟寮忥紝鍦ㄥ洟闃熷紑鍙戜竴鑸兘鏄垎妯″潡寮鍙戯紝榪欐牱姣旇緝鏂逛究錛岄厤緗鐞嗘洿瀹規槗錛屼笉浼氬啿紿併?br />
5銆佹ā鏉挎妧鏈泦鎴?br />聽鎴戝湪瀹為檯搴旂敤欏圭洰涓槸閲囩敤velocity妯℃澘鍋氳鍥懼睍鐜幫紝鍥犱負鍦ㄥ搴旂増鏈殑webwork妗嗘灦涓拰velociy闆嗘垚鐨勭浉褰撳ソ錛屾瘮杈冩柟渚匡紝聽姣旂洿鎺ュ啓jsp浠g爜鏇存暣媧併佸悓鏃跺埄鐢╲elocity妯℃澘鐗規х粨鍚堟瘡涓猘ction鐨勯厤緗枃浠訛紝鍙疄鐜版瘮杈冮氱敤鐨勯〉闈㈡煡璇€佸綍鍏ョ瓑瑙嗗浘鐨勫睍鐜般?br />聽鑰宻truts鏄病鏈夌浉鍏蟲ā鏉塊泦鎴愶紝涓嶈繃struts鐨則ag鐩稿鑰岃█姣攚ebwork鐨則ag濂界敤錛寃ebwork濡傛灉瑙嗗浘鏄痡sp綾誨瀷錛岀浉鍏崇殑tag鐪熺殑姣旇緝楹葷儲,聽铏界劧tag 搴撳緢涓板瘜錛岃繖涔熸槸鎴戜負浠涔堜嬌鐢╲elocity鍋氳鍥劇殑鍘熷洜 銆偮?br />聽
6銆?妗嗘灦鐨勬晥楠屽姛鑳?br />聽鑰佸疄璇達紝涓よ呮鏋剁殑鏁堥獙鍔熻兘閮芥瘮杈冮夯鐑︼紝鐩稿鑰岃█webwork鏇村姞楹葷儲鐐癸紝閰嶇疆杈冨錛岄獙璇佹帴鍙e疄鐜板お楹葷儲錛屾垜瀹為檯欏圭洰浣跨敤涓繕鏄犺嚜瀹氫箟浜嗙浉鍏沖悗鍙伴獙璇佹帴鍙o紝 瑕侀獙璇佺殑鐩稿叧action鍙瀹炵幇鐩稿叧鎺ュ彛鍗沖彲錛岀浉鍏蟲嫤鎴櫒璐熻矗鎷︽埅楠岃瘉錛屄犲ぇ閮ㄥ垎鐨勬晥楠屾牴鎹厤緗暟鎹互鍙奾tml瀵硅薄鑷畾涔夊睘鎬ч氳繃javascript閫氱敤鏁堥獙錛屽疄闄呬笂鐜板湪鍩轟簬XmlHttp鐨刟jax鎶鏈簲鐢ㄦ垚鐔熺殑璇?聽鍚庡彴楠岃瘉鎺ュ彛鐨勭敤閫斾細閫愭笎娣″寲銆?
聽
聽璇存槑涓婅堪姣旇緝鐗堟湰涓?struts 1.0 /webwork 2.1.6錛屽悗緇璼truts妗嗘灦鎵╁睍寰堝鍔熻兘錛屼笉鏄緢浜嗚В錛屽彲鑳藉拰涓婅瘔鎻忚堪涓嶄竴瀹氬緢鍚誨悎銆?br />聽
聽鐜板湪涓よ呭凡緇忓悎騫訛紝甯屾湜鑳界粨鍚堜袱鑰呯殑浼樺娍錛屽彂灞曞嚭鏇村ソweb妗嗘灦銆?br />聽
7銆佸叧浜嶩ibernate榪樻槸DAO妯″紡錛屼釜浜哄緩璁噰鐢╤ibernate+DAO鐩擱泦鍚堢殑妯″紡錛宧ibernate鍗犱富瀵煎湴浣嶃?br />聽铏界劧DAO妯″紡閫氳繃鑷姩鐢熸垚浠g爜鏁堢巼涓嶄細浣庯紝浣嗗鏋滈渶姹傚彉鏇村氨姣旇緝楹葷儲錛岀淮鎶や慨鏀逛唬鐮佽緝澶氾紝嫻嬭瘯宸ヤ綔閲忎篃杈冨ぇ錛屄犱絾Hibernate涓嶆槸涓囪兘鐨勶紝鍦ㄤ竴浜涘繀瑕佺殑搴旂敤榪樻槸閲囩敤DAO妯″紡錛岀壒鍒槸鎬ц兘鐩稿叧鐨勯儴鍒嗐?
聽
聽
聽搴熻瘽涓澶у爢錛屼篃綆楁妸鎴戠殑宸ヤ綔鍥為【浜嗕竴閬嶏紝鍛靛懙錛岃繖涓ゅぉ綆鍗曚簡瑙pring妗嗘灦錛屼釜浜烘劅瑙塖pring鏇村儚涓涓叏闈㈢殑J2EE妗嗘灦瑙e喅鏂規,聽甯屾湜鑳藉鏈夋椂闂寸郴緇熺殑瀛︿範涓鎶婏紝澶у鏈夊叴瓚g殑璇峰澶氫氦嫻?鎴戜細灝嗘垜鐨勫涔犲績寰楀拰澶у鍒嗕韓銆?br />聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
]]>
璁炬兂錛?BR> weblogic platform鍩熺殑鏃ュ織杈撳嚭鏄彲閰嶇疆鐨勶紝鍦?bea/weblogic/common/lib/workshopLogCfg.xml, 鍘熷厛鐨勪竴涓」鐩墍鏈夌殑鏃ュ織杈撳嚭鍧囧湪姝ゆ枃浠朵腑閰嶇疆銆傚叾浠栦腑闂翠歡鏈漢寰堝皯浣跨敤錛岀浉淇′篃鏈夌被浼肩殑鍔熻兘錛宭og4j鏃ュ織妗嗘灦鏀寔緇熶竴鏃ュ織綆$悊鍔熻兘,綆鍗曞疄鐜板師鐞嗭紙鍚姩涓涓猄ocketServer,澶勭悊鍚勪釜瀹㈡埛绔満鍣ㄨ繛鎺ョ殑Socket杈撳叆錛?BR>鑰屾瘡涓簲鐢ㄦ墦鍗版棩蹇椾嬌鐢⊿ocket鏂瑰紡灝嗘棩蹇楀唴瀹硅緭鍑哄埌SocketServer绔級銆傚鏋滆兘灝嗛噸瑕佺殑鐨勪腑闂翠歡寮傚父鏃ュ織浠ュ強搴旂敤寮傚父鏃ュ織鍒扮粺涓鏃ュ織鏈嶅姟鍣紝瀹炴椂鍒嗘瀽錛岃繖鏍峰氨鏂逛究鏃ュ父鐩戞帶錛屾湁鐐圭被浼間簬璁懼鍛婅鐨勫姛鑳斤紝濡傛灉鍐嶅紑鍙戝嚭鐩稿叧鏃ュ織鍒嗘瀽杞歡錛屼釜浜鴻寰椾細鏄鉤鍙扮駭浜у搧鐨勪竴涓寒鐐癸紝姝e銆婂皯鏋楄凍鐞冦嬭鐨勬湁鐐規悶澶淬?/P>
瀹炶返錛?BR> 瀹炶返璇佹槑鐜板疄鍜岀悊鎯蟲誨綊鏈変竴瀹氱殑宸窛錛屽懙鍛點備笅闈㈡弿榪伴獙璇併佸涔犲績寰楋細
棣栧厛鎻忚堪log4j鏄浣曞疄鐜扮粺涓鏃ュ織綆$悊璇ュ姛鑳界殑銆?BR> 鏍稿績綾伙細
涓銆乷rg.apache.log4j.net.SocketServer
涓昏鍔熻兘錛?BR> 1銆佸惎鍔⊿ocketServer
2銆佹帴鍙桽ocket璇鋒眰
3銆佸垵濮嬪寲瀵瑰簲Socket鐨勬棩蹇楄緭鍑洪厤緗紝濡傛病鏈夛紝灝遍噰鐢ㄩ氱敤閰嶇疆
4銆佸彟鍚嚎紼嬪鐞嗗鎴風Socket鍜屾湇鍔$浜や簰
涓涓瘮杈冩爣鍑嗙殑澶氱嚎紼嬪鐞嗗疄鐜般?BR> 鍚姩Server闇瑕佹湁涓変釜榪愯鍙傛暟錛氱鍙e彿銆乴og4j閰嶇疆鏂囦歡銆佸鎴風鏃ュ織鍦⊿erver绔緭鍑洪厤緗枃浠剁洰褰?BR> 榪愯鍛戒護濡備笅錛?BR> java -classpath ../lib/log4j-1.2.8.jar;.; test.logserver.FixSocketServer 8088 server.properties d:/temp
璇存槑錛?BR> a銆佸鎴風鏃ュ織鍦⊿erver绔緭鍑洪厤緗枃浠跺懡鍚嶈鍒?$ip.lcf , 濡?10.21.11.10.lcf
璇ョ被鍦ㄨВ鏋愯閰嶇疆鏂囦歡鐨勪唬鐮佷腑 搴旇瀛樺湪涓猙ug錛堢増鏈?.2.9)
浠g爜176 琛?nbsp; String key = s.substring(0,i);鏀逛負: String key = s.substring(i+1);
b銆侀厤緗枃浠跺唴瀹瑰拰涓鑸琹og4j閰嶇疆鍐呭闆峰悓錛宑ategories銆乤ppenders銆乴ayouts
浜屻乷rg.apache.log4j.net.SocketAppender
璇ョ被緇ф壙浜嶢ppenderSkeleton錛屽鏋滄垜浠渶瑕佽嚜瀹氫箟Appender,鍙互緇ф壙AppenderSkeleton綾伙紝瀹炵幇鏂規硶錛?/P>
涓昏鍔熻兘錛?nbsp;
1銆佽繛鎺ュ埌SocketServer,騫跺垱寤轟竴涓埌SocketServer鐨勫璞¤緭鍑哄疄渚?BR> 2銆佸鏋滆繛鎺ュけ璐ワ紝浼氬惎鍔ㄤ竴涓畧鎶ょ嚎紼嬶紝姣忛殧涓夊崄縐掗挓閲嶆柊榪炴帴
3銆佹棩蹇楄緭鍑烘椂錛屽皢鏃ュ織浜嬩歡瀵硅薄杈撳嚭鍒癝ocketServer
鐩稿搴旂殑鏃ュ織閰嶇疆錛?BR>
涓夈乷rg.apache.log4j.net.SocketNode
璇ョ被鐩稿綆鍗曪紝涓涓嚎紼嬬被
涓昏鍔熻兘錛?BR> 璐熻矗鎺ユ敹瀹㈡埛绔搴旇緭鍑哄璞★紝鏍規嵁瀵瑰簲鐨勯厤緗紝杈撳嚭鐩稿叧鏃ュ織銆?BR>
鍙互鐪嬪嚭鏄氳繃瀵硅薄榪涜浼犺緭鐨勶紝濡傛灉絎笁鏂逛笉鏄噰鐢╦ava璇█鐨勶紝瀹為檯瑙e喅鏃跺彧闇鏀瑰啓SocketAppender鐨刟ppend鏂規硶錛岃緭鍑烘棩蹇楀唴瀹瑰氨鍙傚鏂瑰疄鐜癝ocketServer鍔熻兘灝卞彲錛堢紪紼嬭璦鍩烘湰閮芥敮鎸佽鍔熻兘錛夈?BR>
閬楁喚鐨勬槸鍦╳eblogic 涓鑸瑂erver鍩熶腑鎴戞病鏈夋壘鍒板彲浠ユ敼鍙樻棩蹇楄緭鍑虹殑鍦版柟錛堜笂嬈$湅鍒皐eblogic9.0涓湁鏃ュ織鏈嶅姟錛屼笉鐭ラ亾鑳戒笉鑳芥敼鍙橈級錛屾墍浠ュ疄闄呭樊璺濊繕鏄瘮杈冨ぇ鐨勶紝鍏充簬鎬ц兘闂錛屽洜涓烘槸閲嶈鐨勬棩蹇?warning銆乪rror銆乫etal)鎵嶈緭鍑?閲囩敤socket鏂瑰紡闂搴旇涓嶅ぇ銆?BR>
綃囧璇濓細
鏌ョ湅浠g爜涓棤鎰忎腑鍙戠幇log4j妗嗘灦涓閮ㄥ垎婧愮爜閮芥槸涓浜涗漢鎹愮尞鐨勩傝櫧鐒朵唬鐮佷笉澶嶆潅錛屼絾鎰熻涓鴻嚜宸卞枩嬈㈢殑妗嗘灦寰堢儹蹇冿紝甯屾湜瀹冨彉鐨勮秺鏉ヨ秺濂斤紝鐪熺殑甯屾湜鎴戜滑鍥藉唴涔熻兘鏈変竴浜涗紭縐鐨勫紑婧愰」鐩紝騫朵笖澶у閮藉幓鏀寔瀹冿紝鍙戝睍瀹冦?BR> 瀹為檯鎴戝湪欏圭洰涓嬌鐢╨og4j浣跨敤鐨勯兘鏄竴浜涘熀鏈姛鑳斤紝瀵瑰畠鐨勮璁°佺粨鏋勪笉鏄緢娓呮錛岃皝鏈夌浉鍏沖涔犳枃妗o紝璇風粰鎴戜竴浠斤紝涓嶇敋鎰熸縺錛堜嬌鐢ㄦ墜鍐屽凡鏈夛級銆?BR>