锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鏈満宸茬粡瀹夎浜唈dk1.6錛岃屾瘮杈冩棭鏈熺殑欏圭洰闇瑕佷緷璧杍dk1.5錛屼簬鏄悓鏃跺湪鏈満瀹夎浜唈dk1.5鍜宩dk1.6.
瀹夎jdk1.5鍓嶏紝鎵цjava -version寰楀埌
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
瀹夎瀹宩dk1.5,騫朵慨鏀圭幆澧冨彉閲廕AVA_HOME涓篋:\devSoftware\jdk1.5.鍐嶆墽琛?nbsp;java -version鏃訛紝渚濈劧鏄劇ず錛?/p>
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
鐪嬩笂鍘伙紝鏂扮殑鐜鍙橀噺JAVA_HOME=D:\devSoftware\jdk1.5騫舵病鏈夌敓鏁堛?鍦ㄧ綉涓婃壘浜嗗緢澶氳祫鏂欐墠鍙戠幇錛?/p>
鍦ㄥ畨瑁匤DK1.6鏃訛紙鏈満鍏堝畨瑁卝dk1.6鍐嶅畨瑁呯殑jdk1.5錛夛紝鑷姩灝唈ava.exe銆乯avaw.exe銆乯avaws.exe涓変釜鍙墽琛屾枃浠跺鍒跺埌浜咰:\Windows\System32鐩綍錛岀敱浜庤繖涓洰褰曞湪WINDOWS鐜鍙橀噺涓殑浼樺厛綰ч珮浜嶫AVA_HOME璁劇疆鐨勭幆澧冨彉閲忎紭鍏堢駭
瑙e喅鏂規錛氬皢java.exe,javaw.exe,javaws.exe鍒犻櫎鍗沖彲銆傚紑鍚柊鐨勫懡浠よ紿楀彛錛屽啀鎵цjava -version鏃訛紝灝卞緱鍒頒簡鏈熸湜涓殑緇撴灉
java version "1.5.0_17"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_17-b04, mixed mode)
2 鍋氫駭鍝侀渶姹傦紝鑰屼笉鏄敤鎴烽渶姹傦紱
3 瑕侀敠涓婃坊鑺憋紝鑰屼笉鏄敾铔囨坊瓚籌紱
4 榪芥眰浜烘у寲錛岃屼笉鏄拷姹傚畬緹庛?/span>
浜у搧緇忕悊鏄釜寰堝鎬殑宀椾綅錛屽ソ鍍忓ぇ澶氭暟浜洪兘鑳藉仛錛屽洜涓烘瘡涓漢瀵規煇涓駭鍝侀兘鏈夎嚜宸辯殑鐪嬫硶錛岄兘鑳芥彁鍑轟竴浜涙剰瑙佸拰鎯蟲硶錛岀敋鑷寵兘璁捐瀹炵幇鍘熺悊錛涗篃濂藉儚澶у鏁頒漢閮藉仛涓嶅ソ浜у搧緇忕悊錛屽洜涓轟簰鑱旂綉涓婃垚鍗冧笂涓囦釜浜у搧錛屽ぇ閮ㄥ垎鏄瀮鍦撅紝娌″嚑涓駭鍝佹槸鐢ㄦ埛鐪熷績瑙夊緱寰堜笉閿欑殑銆?/span>
鎴戝仛浜у搧緇忕悊錛岃繕涓嶅埌涓ゅ勾錛屼互鍓嶅崄鏉ュ勾涓鐩村湪鍋氭妧鏈備箣鍓嶅仛鎶鏈殑鏃跺欙紝鎴戝緢鐪嬩笉涓婁駭鍝佺粡鐞嗐傚綋鏃舵兂錛氫駭鍝佺粡鐞嗚嚜宸變粈涔堥兘瀹炵幇涓嶄簡錛屾瘡澶╁氨鏄彁鐐規兂娉曪紝鑰屼笖鎯蟲硶榪樼粡甯鎬笉闈犺氨錛屽鏋滃摢澶╄鍛橈紝浜у搧緇忕悊鐨勪綅緗渶鍗遍櫓浜嗭紱浣嗙瓑鎴戣漿鏉ュ仛浜嗕駭鍝佺粡鐞嗭紝鎯蟲硶鍙戠敓浜嗘牴鏈殑鍙樺寲錛氬棷錛屼駭鍝佺粡鐞嗗お閲嶈鐨勶紝涓涓駭鍝佺殑鏈潵灝卞喅瀹氬湪浜у搧緇忕悊韜笂銆?/span>
浣犻棶鎴戠幇鍦ㄥ浣曠湅寰呮妧鏈漢鍛橈紵鍢垮樋錛屾垜鐜板湪瑙夊緱錛屾妧鏈氨鏄竴鎶婂垁錛岃瀹冩潃璋佸氨鏉璋侊紒褰撶劧錛岃繖鍙槸寮鐜╃瑧銆備竴涓ソ鐨勬妧鏈洟闃熷浜庝駭鍝佺粡鐞嗘潵璇達紝閭f槸鐩稿綋閲嶈銆?/span>
瀵瑰浣曞仛浜у搧緇忕悊錛屾垜榪樼湡鐨勬槸灝忓鐢燂紝鑷繁璐熻矗鐨勬窐瀹濇悳绱㈡渶榪戜袱騫翠篃娌′粈涔堝ぇ鎻愬崌銆傜壒鍒槸鐪嬩簡鍛ㄩ縛紲庛佸紶灝忛緳鍏充簬瀵逛駭鍝佺殑涓浜涜璋堜互鍚庯紝鎴戞洿鍙戠幇鑷繁鍦ㄨ繖鏂歸潰鐨勫樊璺濄?/span>
涓嶈繃鎴戞湁涓紭鐐癸紝灝辨槸鍠勪簬瀛︿範銆佹濊冦佹葷粨騫跺垎浜傝屼笖浣滀負涓涓琛岃繘鍏ュ埌榪欎釜棰嗗煙錛岃瀵熺殑瑙掑害涔熶細涓嶄竴鏍楓傝繖涓騫村涓嬫潵錛屼篃鎵懼埌涓浜涙劅瑙夛紝鍙戠幇鍛ㄥ洿鐨勪竴浜涗駭鍝佺粡鐞嗭紝瀹規槗璧板叆涓浜涜鍖猴紝鍒嗕韓緇欏ぇ瀹躲?/span>
1 鍋氫駭鍝佺粡鐞嗭紝鑰屼笉鏄姛鑳界粡鐞嗐?/span>
榪欏彞璇濇垜鏈鏃╂槸鍚ぉ鐚昏閫嶉仴瀛愯鐨勶紝褰撴椂娌℃湁鎰熻錛岀幇鍦ㄥ彂鐜伴潪甯告湁閬撶悊錛屽洜涓哄懆鍥村お澶氱殑浜у搧緇忕悊瀹為檯涓婃槸鍦ㄥ仛涓鍚嶅姛鑳界粡鐞嗐?/span>
浠栦滑鍙槸涓嶅仠鐨勫湪鎺ヤ駭鍝佸姛鑳介渶姹傦紝鐒跺悗涓嶅仠瀹炵幇浜у搧鍔熻兘銆傜己鐧誨綍錛岃璁′竴涓櫥褰曟錛涙病鏈夋暟鎹紝鎵炬煇涓鉤鍙版墦閫氫竴涓嬶紱綆$悊涓嶆柟渚匡紝璁捐涓涓伐鍏鋒潵綆$悊錛涢〉闈笉緹庤錛岄噸鏂拌鍒掍竴涓嬮〉闈㈢粨鏋?#8230;…
鍔熻兘緇忕悊錛屾瘡澶╅兘寰堝繖錛屽叧娉ㄨ繕鏈夊灝戦渶姹傚湪鍚庨潰鎺掗槦錛岄渶姹傛柟鏄惁寰楀埌婊¤凍銆傝岀敤鎴蜂綋楠屽埌搴曞浣曪紝鍔熻兘鏄惁鐪熺殑鐪熸湁浠峰鹼紝鏄惁鍙互鏇村姞瀹岀編錛屽姛鑳界粡鐞嗗緢灝戝叧蹇冦傚綋鏈変漢鎶辨ㄦ煇涓姛鑳戒笉鐖界殑鏃跺欙紝浠栦細璇達細
榪欎釜鍔熻兘鎴戝凡緇忔湁浜嗗晩錛屼綘璇翠綋楠屼笉澶ソ錛熸病鍔炴硶錛屽伐紼嬪笀璧勬簮澶揣寮犲晩錛屼綘璇翠負鍟ヨ璁$殑榪欎箞鍒壄錛焝ao錛屾兂璧鋒潵灝辨潵姘旓紝澶ц佹澘闈炶姹傝繖鏍峰晩錛屾垜浠篃鍙兘榪欐牱璁捐錛屾病鍔炴硶錛?/span>
浠栫粡甯歌〃杈劇殑璇皵鏄粬涔熶笉寰楀凡鑰屼負涔嬶紝鎶婅矗浠婚兘鎺ㄥ埌鍏朵粬浜鴻韓涓娿?/span>
鐒惰屽仛涓涓悎鏍肩殑浜у搧緇忕悊錛岄渶瑕佸叧娉ㄧ敤鎴風殑浣撻獙錛岀湡姝e叧娉ㄧ敤鎴風殑鍙嶉錛屽叧娉ㄦ暟鎹殑璐ㄩ噺錛屽叧娉ㄦ瘡涓涓粏鑺傘傚氨鍍忎拱涓鍙岄瀷涓鏍鳳紝涓嶅彧鏄兘絀匡紝榪樿鑰冭檻鏄惁鍚堣剼錛屾槸鍚﹁垝鏈嶏紝嬈懼紡鏄惁婕備寒銆?/span>
鏈変竴嬈″紑浼氾紝娣樺疂鐨勬昏璇濮愬璇翠簡涓鍙ュ緢鏈寸礌浣嗗緢鏈夐亾鐞嗙殑涓鍙ヨ瘽錛氫駭鍝佽兘鐢ㄥ拰濂界敤瀹屽叏涓嶆槸涓鍥炰簨錛?/span>
(澶у涓嶇敤鎵硅瘎娣樺疂鎼滅儲鍟婏紝鎴戠煡閬撳緢澶氬湴鏂硅繕涓嶅ソ鐢ㄣ傚ぇ瀹跺啀緇欐垜鐐規椂闂達紝鎴戜篃璁よ瘑鍒拌繖涓棶棰樹笉鏄?.....)
2 瀹炵幇浜у搧闇姹傦紝鑰屼笉鏄敤鎴烽渶姹傘?/span>
榪欎釜璇濋寰堟湁鎰忔濄傚綋浣犻棶鐢ㄦ埛闇瑕佷粈涔堢殑鏃跺欙紝浠栦細鍥炵瓟浠栭渶瑕佷竴鍖規洿蹇殑椹備箶甯冩柉璇達紝姘歌繙涓嶈闂敤鎴鋒兂瑕佷粈涔堬紒鍥犱負鐢ㄦ埛閮芥槸鍌葷摐錛屼笉鐭ラ亾鑷繁鎯寵浠涔堛?/span>
榪欏叾瀹炴槸浜у搧緇忕悊緇忓父鎶婄敤鎴烽渶姹傚綋鎴愪駭鍝侀渶姹傘傚鎵鏈夌敤鎴瘋鐨勶紝浠栦滑娌¢敊錛屾彁鐨勯兘鏄嚜宸辯殑鏈熸湜錛屼笉鏄竴涓駭鍝侀渶姹傘傚墠浜涘ぉ鏈夊紶灝忛緳鐨勯噰璁匡紝寮犲皬榫欒浠栦笉鐪嬬敤鎴風殑鏁版嵁銆傚叾瀹炲紶灝忛緳寰堝叧蹇冪敤鎴風殑闇姹傦紝鎴戝拰寮犲皬榫欏湪涓涓兢閲岋紝濡傛灉鏈変漢鍦ㄧ兢閲屾彁涓浜涘井淇′嬌鐢ㄤ笉鐖界殑鍔熻兘錛屽紶灝忛緳浼氬緢蹇粰鍑哄弽棣堛?/span>
榪欎簺浜у搧澶х浠紝鑳屽悗鐨勬剰鎬濇槸錛屼笉搴旇綆鍗曟弧瓚崇敤鎴烽渶姹傦紝鑰屽簲璇ユ濊冩妸鐢ㄦ埛闇姹傛彁鐐兼垚浜у搧闇姹傘傚綋涓涓駭鍝佺殑鐢ㄦ埛鏈変笂鐧句竾涓婂崈涓囩殑鏃跺欙紝浜у搧闇姹傜殑鐞嗚В鍜屾彁鐐鹼紝灝辯浉褰撻噸瑕併?/span>
榪欎釜閬撶悊姣旇緝瀹規槗鐞嗚В錛屼笉鍋氬瑙i噴銆?/span>
3 瑕侀敠涓婃坊鑺憋紝鑰屼笉鏄敾铔囨坊瓚熾?/span>
浜掕仈緗戠殑鍙戝睍錛岃寰堝浜掕仈緗戜駭鍝佺粡鐞嗘湁涓儻鎬э細鍋氫駭鍝佽凱浠h蹇傚揩閫熶笂綰匡紝蹇熶慨鏀廣傝繖閲屼篃鏈夎鍖猴紝瀵逛簬涓浜涘熀鏈姛鑳斤紝紜疄瑕佸揩閫熶笂綰匡紝蹇熻凱浠c傚洜涓烘湁甯傚満绔炰簤錛岄渶瑕佸揩閫熷垏鍏ュ競鍦猴紝鑾峰緱鐢ㄦ埛銆傜劧鑰屽ぇ閮ㄥ垎鐨勪駭鍝佺粡鐞嗭紝娌℃湁鏈轟細浠庨浂寮濮嬭璁′竴涓柊浜у搧錛屽ぇ閮ㄥ垎鏃跺欏湪鐜版湁鐨勪駭鍝佷笂鍋氬崌綰ф垨浼樺寲銆傝繖鏃惰璁$殑寰堝鍔熻兘錛岄兘鏄敠涓婃坊鑺辯殑鍔熻兘錛岃繕鐪熶笉鑳藉お蹇?/span>
閿︿笂娣昏姳鐨勫姛鑳斤紝鍚屾牱閲嶈錛屼細璁╀駭鍝佹洿濂界帺錛屾洿鏈夋剰鎬濓紝鏇存湁鐗圭偣銆備緥濡傚井淇℃渶鏃╄璁$殑鎽囦竴鎽囧姛鑳姐佹湅鍙嬪湀鍔熻兘銆傚井鍗氱殑寰垔鍔熻兘銆佷箣鍓嶇殑閫佺ぜ鐗╃殑鍔熻兘銆?/span>
闂鍦ㄤ簬錛岄敠涓婃坊鑺憋紝娣諱笂鍘葷殑涓瀹氭槸涓鏈佃姳錛岃寰椾織涓鐐癸紝涓嶈兘娣諱笂鍘繪槸涓鍧ㄥ睅銆傚鏋滄槸鍚庤咃紝閭d箞灝辨湁鐐圭敾铔囨坊瓚充簡錛屾垨鑰呮垚浜嗛浮鑲嬪姛鑳姐?/span>
浠涔堟槸涓鏈佃姳錛熷氨鏄姛鑳芥坊鍔犱笂鍘諱互鍚庯紝浼氳鐢ㄦ埛鐪煎墠涓浜傜粰浜烘湁“鍝囷紒錛侊紒”鐨勬劅瑙?#8230;…
閬楁喚鐨勬槸娣樺疂鎼滅儲涔嬪墠鐨勫緢澶氬姛鑳芥坊涓婂幓鐨勯兘涓嶆槸涓鏈佃姳錛屼笂綰夸簡澶鐨勭敾铔囨坊瓚崇殑鍔熻兘銆傝繖浜涘姛鑳戒竴鏃︿笂綰匡紝灝卞緢闅句笅綰褲傚洜涓哄綋浣犱駭鍝佺殑鐢ㄦ埛緹ゆ湁涓婁嚎鐨勬椂鍊欙紝鍐嶇儌鐨勪竴涓姛鑳斤紝姣忓ぉ涔熶細鏈夊嚑鍗佷竾鐢ㄦ埛鍦ㄤ嬌鐢ㄣ備竴鏃︿綘涓嬬嚎錛屼細鏈夊緢澶氫漢寰堜笉鐖姐?/span>
娣樺疂鎼滅儲鐨勫悓搴楄喘灝辨湁鐐硅繖涓懗閬撱傛妧鏈疄鐜版垚鏈珮錛屼綋楠屼竴鑸紝鐢ㄧ殑浜轟篃涓嶅銆傛湁涓孌墊椂闂存垜浠妸榪欎釜鍔熻兘闅愯棌璧鋒潵浜嗭紝鏈変漢鍦ㄥ井鍗氫笂璇達細
濡堢殑錛屾垜鐜板湪鏈鎯沖仛鐨勪簨鎯咃紝灝辨槸鎵炬妸鍒鏉涓窐瀹濇悳绱㈢殑浜у搧緇忕悊鏉ヨВ瑙f仺錛屾垜灞呯劧姝繪椿鎵句笉鍒版垜鏈甯哥敤鐨勫悓搴楄喘浜嗭紒
鐢昏泧娣昏凍鐨勫姛鑳借秺澶氾紝璁╀駭鍝佽儗璐熺殑鍨冨溇灝辮秺澶氾紝閫犳垚濂界殑鍔熻兘娌℃湁璧勬簮鍋氾紝宸殑鍔熻兘鍙堟棤娉曚笅綰褲?/span>
4 榪芥眰浜烘у寲錛岃屼笉鏄拷姹傚畬緹庛?/span>
寰堝浜у搧緇忕悊錛岃拷姹傚畬緹庛傝繖鏄綔涓轟駭鍝佺粡鐞嗗緢濂界殑鍝佽川錛岀劧鑰岋紝鏈変竴鐐瑰嵈緇忓父琚駭鍝佺粡鐞嗗拷瑙嗭紝浜у搧鐨勪漢鎬у寲銆?/span>
姘歌繙娌℃湁瀹岀編鐨勪駭鍝侊紝鐗瑰埆鏄綋涓涓駭鍝佺殑鐢ㄦ埛閲忓埌杈句笂鐧句竾涓婂崈涓囩殑鏃跺欍傜敤鎴風殑鍠滃ソ鍗冨樊涓囧埆銆傚浣曡鐢ㄦ埛鑳藉枩嬈駭鍝佺殑浼樼偣鐨勫悓鏃惰兘瀹瑰繊浜у搧鐨勭己鐐癸紵
澶у鐪嬮夌編澶ц禌鑾瘋儨鐨勭編濂籌紝緇忓父浼氭湁鎰熷徆錛屼負浠涔堣繖涔堜笐榪樿兘寰楀墠涓夊晩錛佹槸鍥犱負璇勫鐨勫彛鍛沖お鐗瑰埆錛熷綋鐒舵湁涓閮ㄥ垎璇勫鍘熷洜錛屼絾鏇村鍘熷洜鍦ㄤ簬錛屽ぇ瀹舵瘡涓漢鐨勫緹庤涓嶄竴鏍楓傚ぇ瀹舵槸鎶婇夌編鍐犲啗浣滀負涓涓畬緹庣殑浜烘潵璇勫垽銆?/span>
瀹為檯涓婏紝鏃犺閫夊嚭璋佹槸鍐犲啗錛岄兘浼氭湁浜鴻寰楅毦鐪嬨備換浣曚竴涓駭鍝侊紝鏃犺浜у搧緇忕悊鎺ㄥ嚭澶氫箞濂界敤鐨勫姛鑳斤紝閮戒細鏈変漢涓嶅枩嬈紒
鐒惰岋紝澶у瀵瑰緟鍛ㄥ洿鐨勬湅鍙嬶紝灝變笉浼氱敤閫夌編鐨勬爣鍑嗚姹備粬浠紝浠栦滑鏈夋槑鏄劇殑緙虹偣錛屼絾涔熸湁寰堝鍊煎緱嬈h祻鐨勫湴鏂廣傚ぇ瀹惰闃呴鑴氫竷鐨勫井淇★紝緇濆ぇ閮ㄥ垎浜轟笉浼氭湡鏈涳紝楝艱剼涓冩瘡澶╃殑鏂囩珷閮戒細絎﹀悎鑷繁鐨勫彛鍛熾傛湁浜轟笉鐪嬫枃绔狅紝鍙湅鐪嬨?鍝ラ棽璋堛戜篃浼氳寰楀緢鏈夋剰鎬濄備負浠涔堬紵鍥犱負澶у涓嶄細鏈熷緟楝艱剼涓冭繖涓處鍙鋒槸涓畬緹庣殑璐﹀彿錛屾妸楝艱剼涓冧綔涓轟竴涓湅鍙嬪湪鐪嬪緟銆傞鑴氫竷鏈夌己鐐癸紝涔熸湁浼樼偣銆?/span>
濡傛灉鑳借鐢ㄦ埛鎶婃垜浠殑浜у搧褰撴垚鍛ㄥ洿鐨勬湅鍙嬫潵鐪嬪緟鍛紵鎰熻浼氬畬鍏ㄤ笉涓鏍楓?/span>
娣樺疂鏈変釜鍋氳繍钀ョ殑鍚屼簨鏈変竴澶╄窡鎴戞劅鍙硅錛氭垜蹇界劧瑙夊緱鏀誨煄鐙滑紱繪垜濂借繎錛屾瘡涓敾鍩庣嫯鍐呭績閮戒綇鐫涓瘲浜猴紒鎴戦棶涓轟粈涔堜細蹇界劧鏈夎繖縐嶆劅瑙夛紵濂硅鏈変竴澶╂櫄涓婏紝鍙戠幇鍦ㄦ窐瀹濆唴閮ㄤ竴涓猅MS緋葷粺鐨勬爣棰樻爮涓婂拷鐒跺浜嗕竴鍙ヨ瘽錛?/span>
姣忎釜浜虹殑鍘嬪姏錛屽皯閮ㄥ垎鏉ヨ嚜鐢熷瓨錛屽ぇ閮ㄥ垎鏉ヨ嚜鏀姣斻?/span>
灝辮繖涓鍙ヨ瘽錛岃鐢ㄦ埛鎰熻鍒頒簡浜у搧鑳屽悗鐨勯偅浣嶅伐紼嬪笀銆傝繕璁板緱寰俊鏈変釜鐗堟湰鐨勬榪庨〉闈笂鐨勬枃瀛楀悧錛?/span>
灝戝彂寰俊錛屽鍜屾湅鍙嬭瑙侀潰錛?/span>
灝辮繖涓鍙ヨ瘽錛岃鎴戞劅瑙夊埌浜у搧鑳屽悗鐨勯偅緹や漢鐨勫績鐞嗘椿鍔ㄣ傚井淇$殑涓浜涘皬鐟曠柕錛屾垜涔熻兘瀹瑰繊銆?/span>
灝辨槸榪欏彞璇濓紝鎴戝枩嬈笂浜嗗井淇°?/span>
浜烘у寲錛屾槸涓嶆槸璁╀駭鍝佸紑濮嬪叿鏈変簡鐏甸瓊錛?/span>
濡備綍璁╀駭鍝佹洿鍔犱漢鎬у寲錛熷浣曡娣樺疂鎼滅儲鏇村姞浜烘у寲錛熸槸鎴戞渶榪戜竴鐩村湪鎬濊冪殑闂銆傛垜瀹氫箟2013騫存悳绱㈢殑鍏抽敭璇嶏細涓撲笟鍜屾湁瓚c傚笇鏈?013騫磋兘璁╂洿澶氱殑浜烘妸娣樺疂鎼滅儲褰撴垚涓涓湅鍙嬶紝鑰屼笉鏄竴涓伐鍏楓?/span>
鍐欎簡榪欎箞澶氾紝鍥炲ご鐪嬬湅鎴戣繖綃囨枃绔狅紝濂藉儚娌℃湁浠涔堜駭鍝佽璁℃柟娉曪紝鍙槸涓浜涙濊冿紝浠呮鑰屽凡銆?/span>
浣滆呬粙緇嶏細
楝艱剼涓冿紝涓涓畝鍗曠殑浜猴紝鍒嗕韓鐢靛晢璧勮銆佹悳绱㈠彉鍖栥佹窐瀹濆姩鎬併佷駭鍝佽璁°佺鐞嗗績寰椼佺敓媧繪劅鎮燂紱鍋跺皵鏂囪壓錛屽伓灝旀繁娌夈傚仛涓涓湁鎬濇兂鐨勪漢錛佸井淇¤處鍙?/span>: taobaoguijiaoqi 鍔犱負濂藉弸鍚庡洖澶?/span> m 鍙互鐪嬪埌浣滆呬箣鍓嶇殑鎵鏈夋枃绔犮?/span>
1銆乄eb Client 鍚慡ervlet瀹瑰櫒錛圱omcat錛夊彂鍑篐ttp璇鋒眰
2銆丼ervlet瀹瑰櫒鎺ユ敹Web Client鐨勮姹?/span>
3銆丼ervlet瀹瑰櫒鍒涘緩涓涓狧ttpRequest瀵硅薄錛屽皢Web Client璇鋒眰鐨勪俊鎭皝瑁呭埌榪欎釜瀵硅薄涓?/span>
4銆丼ervlet瀹瑰櫒鍒涘緩涓涓狧ttpResponse瀵硅薄
5銆丼ervlet瀹瑰櫒璋冪敤HttpServlet瀵硅薄鐨剆ervice鏂規硶錛屾妸HttpRequest瀵硅薄涓嶩ttpResponse瀵硅薄浣滀負鍙傛暟
浼犵粰 HttpServlet瀵硅薄
6銆丠ttpServlet璋冪敤HttpRequest瀵硅薄鐨勬湁鍏蟲柟娉曪紝鑾峰彇Http璇鋒眰淇℃伅
7銆丠ttpServlet璋冪敤HttpResponse瀵硅薄鐨勬湁鍏蟲柟娉曪紝鐢熸垚鍝嶅簲鏁版嵁
8銆丼ervlet瀹瑰櫒鎶奌ttpServlet鐨勫搷搴旂粨鏋滀紶緇橶eb Client
瀵逛簬Servlet瀹瑰櫒(Tomcat)涓嶩ttpServlet鏄庢牱榪涜浜や簰鐨勫憿錛岀湅涓嬬被鍥?/p>
Servlet鐨勬鏋舵槸鐢變袱涓狫ava鍖呯粍鎴愮殑錛歫avax.servlet涓巎avax.servlet.http銆傚湪javax.servlet鍖呬腑瀹氫箟浜嗘墍鏈夌殑Servlet綾婚兘蹇呴』瀹炵幇鎴栬呮墿灞曠殑閫氱敤鎺ュ彛鍜岀被銆傚湪javax.servlet.http鍖呬腑瀹氫箟浜嗛噰鐢℉ttp鍗忚閫氫俊鐨凥ttpServlet綾匯係ervlet鐨勬鏋剁殑鏍稿績鏄痡avax.servlet.Servlet鎺ュ彛錛屾墍鏈夌殑Servlet閮藉繀欏誨疄鐜拌繖涓帴鍙c?/p>
鍦⊿ervlet鎺ュ彛涓畾涔変簡5涓柟娉曪紝
鍏朵腑3涓柟娉曚唬琛ㄤ簡Servlet鐨勭敓鍛藉懆鏈燂細
1銆乮nit鏂規硶錛氳礋璐e垵濮嬪寲Servlet瀵硅薄銆?/span>
2銆乻ervice鏂規硶錛氳礋璐e搷搴斿鎴風殑璇鋒眰銆?/span>
3銆乨estroy鏂規硶錛氬綋Servlet瀵硅薄閫鍑虹敓鍛藉懆鏈熸椂錛岃礋璐i噴鏀懼崰鐢ㄧ殑璧勬簮銆?/span>
涓銆佸垱寤篠ervlet瀵硅薄鐨勬椂鏈?/strong>
1銆丼ervlet瀹瑰櫒鍚姩鏃訛細璇誨彇web.xml閰嶇疆鏂囦歡涓殑淇℃伅錛屾瀯閫犳寚瀹氱殑Servlet瀵硅薄錛屽垱寤篠ervletConfig瀵硅薄錛屽悓鏃跺皢ServletConfig瀵硅薄浣滀負鍙傛暟鏉ヨ皟鐢⊿ervlet瀵硅薄鐨刬nit鏂規硶銆?/p>
2銆佸湪Servlet瀹瑰櫒鍚姩鍚庯細瀹㈡埛棣栨鍚慡ervlet鍙戝嚭璇鋒眰錛孲ervlet瀹瑰櫒浼氬垽鏂唴瀛樹腑鏄惁瀛樺湪鎸囧畾鐨凷ervlet瀵硅薄錛屽鏋滄病鏈夊垯鍒涘緩瀹冿紝鐒跺悗鏍規嵁瀹㈡埛鐨勮姹傚垱寤篐ttpRequest銆?nbsp; HttpResponse瀵硅薄錛屼粠鑰岃皟鐢⊿ervlet
瀵硅薄鐨剆ervice鏂規硶銆?/p>
3銆丼ervlet鐨勭被鏂囦歡琚洿鏂板悗錛岄噸鏂板垱寤篠ervlet
Servlet瀹瑰櫒鍦ㄥ惎鍔ㄦ椂鑷姩鍒涘緩Servlet錛岃繖鏄敱鍦╳eb.xml鏂囦歡涓負Servlet璁劇疆鐨?lt;load-on-startup>灞炴у喅瀹?/p>
鐨勩備粠涓垜浠篃鑳界湅鍒板悓涓涓被鍨嬬殑Servlet瀵硅薄鍦⊿ervlet瀹瑰櫒涓互鍗曚緥鐨勫艦寮忓瓨鍦ㄣ?/p>
浜屻侀攢姣丼ervlet瀵硅薄鐨勬椂鏈?/strong>
1銆?span style="color: #ff0000;">Servlet瀹瑰櫒鍋滄鎴栬呴噸鏂板惎鍔?/span>錛歋ervlet瀹瑰櫒璋冪敤Servlet瀵硅薄鐨刣estroy鏂規硶鏉ラ噴鏀捐祫婧愩備互涓婃墍璁茬殑灝辨槸Servlet瀵硅薄鐨勭敓鍛藉懆鏈熴傞偅涔圫ervlet瀹瑰櫒濡備綍鐭ラ亾鍒涘緩鍝竴涓猄ervlet瀵硅薄錛?/p>
Servlet瀵硅薄濡備綍閰嶇疆錛熷疄闄呬笂榪欎簺淇℃伅鏄氳繃璇誨彇web.xml閰嶇疆鏂囦歡鏉ュ疄鐜扮殑銆?/p>
鎴戜滑鏉ョ湅涓涓媤eb.xml鏂囦歡涓殑Servlet瀵硅薄鐨勯厤緗妭淇℃伅
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?/p>
<servlet>
<servlet-name>action<servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
涓嬮潰瀵逛笂闈㈢殑閰嶇疆鑺備俊鎭繘琛岃В鏋?/p>
servlet-name錛歋ervlet瀵硅薄鐨勫悕縐?/p>
servlet-class錛氬垱寤篠ervlet瀵硅薄鎵瑕佽皟鐢ㄧ殑綾?/p>
param-name錛氬弬鏁板悕縐?/p>
param-value錛氬弬鏁板?/p>
load-on-startup錛歋ervlet瀹瑰櫒鍚姩鏃跺姞杞絊ervlet瀵硅薄鐨勯『搴?/p>
servlet-mapping/servlet-name錛氳涓巗ervlet涓殑servlet-name閰嶇疆鑺傚唴瀹瑰搴?/p>
url-pattern錛氬鎴瘋闂殑Servlet鐨勭浉瀵筓RL璺緞
褰揝ervlet瀹瑰櫒鍚姩鐨勬椂鍊欒鍙?lt;servlet>閰嶇疆鑺備俊鎭紝鏍規嵁<servlet-class>閰嶇疆鑺備俊鎭垱寤篠ervlet瀵硅薄錛屽悓鏃舵牴鎹?lt;init-param>閰嶇疆鑺備俊鎭垱寤篐ttpServletConfig瀵硅薄錛岀劧鍚庢墽琛孲ervlet瀵硅薄鐨刬nit鏂規硶錛屽茍涓旀牴鎹?lt;load-on-startup>閰嶇疆鑺備俊鎭潵鍐沖畾鍒涘緩Servlet瀵硅薄鐨勯『搴忥紝濡傛灉姝ら厤緗妭淇℃伅涓鴻礋鏁版垨鑰呮病鏈夐厤緗紝閭d箞鍦⊿ervlet瀹瑰櫒鍚姩鏃訛紝灝嗕笉鍔犺澆姝ervlet瀵硅薄銆傚綋瀹㈡埛璁塊棶Servlet瀹瑰櫒鏃訛紝Servlet瀹瑰櫒鏍規嵁瀹㈡埛璁塊棶鐨刄RL鍦板潃錛岄氳繃<servlet-mapping>閰嶇疆鑺備腑鐨?lt;url-pattern>閰嶇疆鑺備俊鎭壘鍒版寚瀹氱殑Servlet瀵硅薄錛屽茍璋冪敤姝ervlet瀵硅薄鐨剆ervice鏂規硶銆?/p>
涓轟簡楠岃瘉涓嬶紝鎴戞柊寤轟簡涓涓獁eb app宸ョ▼錛屾柊寤轟竴涓猄ervlet錛屽涓?
褰搒ervlet琚攢姣佹椂浼氬湪鎺у埗鍙頒笂鎵撳嵃鎻愮ず璇彞錛屼笉榪囨垜鍙戠幇鍦╰omcat涓紝鍙涓嶅仠姝eb瀹瑰櫒錛宻ervlet鏄笉浼氳閿姣佺殑銆傛湁娌℃湁浠涔堟柟娉曪紝褰搒ervice鏂規硶鎵ц瀹屾瘯灝遍攢姣佽繖涓猻ervlet鍛紝鎴戦棶浜嗕笅鑰佸笀錛屼粬璇村啓涓涓洃鍚櫒錛屼笉榪囨垜涓嶇煡閬撴庝箞鍘誨疄鐜板畠錛屽鏋滄湁鏈嬪弸鐭ラ亾瀹炵幇鐨勮繃紼嬶紝榪樿璧愭暀銆?/p>
http://www.iteye.com/topic/1113459
IoC瀹瑰櫒錛氭渶涓昏鏄畬鎴愪簡瀹屾垚瀵硅薄鐨勫垱寤哄拰渚濊禆鐨勭鐞嗘敞鍏ョ瓑絳夈?/p>
鍏堜粠鎴戜滑鑷繁璁捐榪欐牱涓涓瑙掓潵鑰冭檻錛?/strong>
鎵璋撴帶鍒跺弽杞紝灝辨槸鎶婂師鍏堟垜浠唬鐮侀噷闈㈤渶瑕佸疄鐜扮殑瀵硅薄鍒涘緩銆佷緷璧栫殑浠g爜錛屽弽杞粰瀹瑰櫒鏉ュ府蹇欏疄鐜般傞偅涔堝繀鐒剁殑鎴戜滑闇瑕佸垱寤轟竴涓鍣紝鍚屾椂闇瑕佷竴縐嶆弿榪版潵璁╁鍣ㄧ煡閬撻渶瑕佸垱寤虹殑瀵硅薄涓庡璞$殑鍏崇郴銆傝繖涓弿榪版渶鍏蜂綋琛ㄧ幇灝辨槸鎴戜滑鍙厤緗殑鏂囦歡銆?/p>
瀵硅薄鍜屽璞″叧緋繪庝箞琛ㄧず錛?/em>
鍙互鐢?/em>xml錛?/em>properties鏂囦歡絳夎涔夊寲閰嶇疆鏂囦歡琛ㄧず銆?/em>
鎻忚堪瀵硅薄鍏崇郴鐨勬枃浠跺瓨鏀懼湪鍝噷錛?/em>
鍙兘鏄?/em>classpath錛?/em>filesystem錛屾垨鑰呮槸URL緗戠粶璧勬簮錛?/em>servletContext絳夈?/em>
鍥炲埌姝i錛屾湁浜嗛厤緗枃浠訛紝榪橀渶瑕佸閰嶇疆鏂囦歡瑙f瀽銆?/p>
涓嶅悓鐨勯厤緗枃浠跺瀵硅薄鐨勬弿榪頒笉涓鏍鳳紝濡傛爣鍑嗙殑錛岃嚜瀹氫箟澹版槑寮忕殑錛屽浣曠粺涓錛?/em> 鍦ㄥ唴閮ㄩ渶瑕佹湁涓涓粺涓鐨勫叧浜庡璞$殑瀹氫箟錛屾墍鏈夊閮ㄧ殑鎻忚堪閮藉繀欏昏漿鍖栨垚緇熶竴鐨勬弿榪板畾涔夈?/em>
濡備綍瀵逛笉鍚岀殑閰嶇疆鏂囦歡榪涜瑙f瀽錛熼渶瑕佸涓嶅悓鐨勯厤緗枃浠惰娉曪紝閲囩敤涓嶅悓鐨勮В鏋愬櫒銆?/em>
鍩轟簬浠ヤ笂闂錛屽搴旇繃鏉ワ紝鍒氬ソ鏄?nbsp;spring ioc 瀹瑰櫒鎶借薄鐨勭殑鍑犱釜涓昏鎺ュ彛錛?/strong>
Resource
BeanDefinition
BeanDefinitionReader
BeanFactory
ApplicationContext
浠ヤ笂浜斾釜閮芥槸鎺ュ彛錛岄兘鏈夊悇寮忓悇鏍風殑瀹炵幇錛屾鏄繖5涓帴鍙e畾涔変簡spring ioc瀹瑰櫒鐨勫熀鏈唬鐮佺粍浠剁粨鏋勩傝屽叾緇勪歡鍚勭瀹炵幇鐨勭粍鍚堝叧緋葷粍鎴愪簡涓涓繍琛屾椂鐨勫叿浣撳鍣ㄣ?/p>
鏄璧勬簮鐨勬娊璞★紝姣忎竴涓帴鍙e疄鐜扮被閮戒唬琛ㄤ簡涓縐嶈祫婧愮被鍨嬶紝濡?span style="font-size: 11pt; font-family: 'Courier New';">ClasspathResource銆?span style="font-size: 11pt; font-family: 'Courier New';">URLResource錛?span style="font-size: 11pt; font-family: 'Courier New';">FileSystemResource絳夈傛瘡涓涓祫婧愮被鍨嬮兘灝佽浜嗗鏌愪竴縐嶇壒瀹氳祫婧愮殑璁塊棶絳栫暐銆傚畠鏄?span style="font-size: 11pt; font-family: 'Courier New';">spring璧勬簮璁塊棶絳栫暐鐨勪竴涓熀紜瀹炵幇錛屽簲鐢ㄥ湪寰堝鍦烘櫙銆?/p>
鍏蜂綋鍙互鍙傝冩枃绔?span style="font-size: 11pt; font-family: 'Courier New';">:
Spring 璧勬簮璁塊棶鍓栨瀽鍜岀瓥鐣ユā寮忓簲鐢?/p>
http://www.ibm.com/developerworks/cn/java/j-lo-spring-resource/index.html
2.BeanDefinition
鐢ㄦ潵鎶借薄鍜屾弿榪頒竴涓叿浣?span style="font-size: 11pt; font-family: 'Courier New';">bean瀵硅薄銆傛槸鎻忚堪涓涓?span style="font-size: 11pt; font-family: 'Courier New';">bean瀵硅薄鐨勫熀鏈暟鎹粨鏋勩?/p>
3.BeanDefinitionReader
BeanDefinitionReader灝嗗閮ㄨ祫婧愬璞℃弿榪扮殑bean瀹氫箟緇熶竴杞寲涓虹粺涓鐨勫唴閮ㄦ暟鎹粨鏋?span style="font-size: 11pt; font-family: 'Courier New';">BeanDefinition銆傚搴斾笉鍚岀殑鎻忚堪闇瑕佹湁涓嶅悓鐨?span style="font-size: 11pt; font-family: 'Courier New';">Reader銆傚XmlBeanDefinitionReader鐢ㄦ潵璇誨彇xml鎻忚堪閰嶇疆鐨?span style="font-size: 11pt; font-family: 'Courier New';">bean瀵硅薄銆?/p>
4.BeanFactory
鐢ㄦ潵瀹氫箟涓涓緢綰補鐨?span style="font-size: 11pt; font-family: 'Courier New';">bean瀹瑰櫒銆傚畠鏄竴涓?span style="font-size: 11pt; font-family: 'Courier New';">bean瀹瑰櫒鐨勫繀澶囩粨鏋勩傚悓鏃跺拰澶栭儴搴旂敤鐜絳夐殧紱匯?span style="font-size: 11pt; font-family: 'Courier New';">BeanDefinition鏄畠鐨勫熀鏈暟鎹粨鏋勩傚畠緇存姢涓涓?span style="font-size: 11pt; font-family: 'Courier New';">BeanDefinitions Map,騫跺彲鏍規嵁BeanDefinition鐨勬弿榪拌繘琛?span style="font-size: 11pt; font-family: 'Courier New';">bean鐨勫垱寤哄拰綆$悊銆?/p>
5.ApplicationContext
浠庡悕瀛楁潵鐪嬪彨搴旂敤涓婁笅鏂囷紝鏄拰搴旂敤鐜鎭伅鐩稿叧鐨勩傛病閿欒繖涓氨鏄垜浠鉤鏃跺紑鍙戜腑緇忓父鐩存帴浣跨敤鎵撲氦閬撶殑涓涓被錛屽簲鐢ㄤ笂涓嬫枃錛屾垨鑰呬篃鍙仛spring瀹瑰櫒銆傚叾瀹炲畠鐨勫熀鏈疄鐜版槸浼氭寔鏈変竴涓?span style="font-size: 11pt; font-family: 'Courier New';">BeanFactory瀵硅薄錛屽茍鍩轟簬姝ゆ彁渚涗竴浜涘寘瑁呭拰鍔熻兘鎵╁睍銆備負浠涔堣榪欎箞鍋氬憿錛熷洜涓?span style="font-size: 11pt; font-family: 'Courier New';">BeanFactory瀹炵幇浜嗕竴涓鍣ㄥ熀鏈粨鏋勫拰鍔熻兘錛屼絾鏄笌澶栭儴鐜闅旂銆傞偅涔堣鍙栭厤緗枃浠訛紝騫跺皢閰嶇疆鏂囦歡瑙f瀽鎴?span style="font-size: 11pt; font-family: 'Courier New';">BeanDefinition錛岀劧鍚庢敞鍐屽埌BeanFactory鐨勮繖涓涓繃紼嬬殑灝佽鑷劧灝遍渶瑕?span style="font-size: 11pt; font-family: 'Courier New';">ApplicationContext銆?span style="font-size: 11pt; font-family: 'Courier New';">ApplicationContext鍜屽簲鐢ㄧ幆澧冪粏緇嗙浉鍏籌紝甯歌瀹炵幇鏈?span style="font-size: 11pt; font-family: 'Courier New';">ClasspathXmlApplicationContext,FileSystemXmlApplicationContext,WebApplicationContext絳夈?span style="font-size: 11pt; font-family: 'Courier New';">Classpath銆?span style="font-size: 11pt; font-family: 'Courier New';">xml銆?span style="font-size: 11pt; font-family: 'Courier New';">FileSystem銆?span style="font-size: 11pt; font-family: 'Courier New';">Web絳夎瘝閮戒唬琛ㄤ簡搴旂敤鍜岀幆澧冪浉鍏崇殑涓浜涙剰鎬濓紝浠庡瓧闈笂涓嶉毦鐞嗚В鍚勮嚜浠h〃鐨勫惈涔夈?/p>
褰撶劧ApplicationContext鍜?span style="font-size: 11pt; font-family: 'Courier New';">BeanFactory鐨勫尯鍒繙涓嶆浜庢錛屾湁錛?/p>
1. 璧勬簮璁塊棶鍔熻兘錛氬湪Resource鍜?span style="font-size: 11pt; font-family: 'Courier New';">ResourceLoader鐨勫熀紜涓婂彲浠ョ伒媧葷殑璁塊棶涓嶅悓鐨勮祫婧愩?/p>
2. 鏀寔涓嶅悓鐨勪俊鎭簮銆?/p>
3. 鏀寔搴旂敤浜嬩歡錛氱戶鎵夸簡鎺ュ彛ApplicationEventPublisher錛岃繖鏍峰湪涓婁笅鏂囦腑涓?span style="font-size: 11pt; font-family: 'Courier New';">bean涔嬮棿鎻愪緵浜嗕簨浠舵満鍒躲?/p>
……
浠ヤ笂5涓粍浠跺熀鏈唬琛ㄤ簡ioc瀹瑰櫒鐨勪竴涓渶鍩烘湰緇勬垚錛岃岀粍浠剁殑緇勫悎鏄斁鍦?span style="font-size: 11pt; font-family: 'Courier New';">ApplicationContext鐨勫疄鐜拌繖涓灞傛潵瀹屾垚銆?/p>
浠lasspathXmlApplicationContext 瀹瑰櫒瀹炵幇涓轟緥錛屽叾緇勫悎鍏崇郴濡備笅錛?/span>
ClassPathXmlApplicationContext鐨剅efresh() 鏂規硶璐熻矗瀹屾垚浜嗘暣涓鍣ㄧ殑鍒濆鍖栥?/p>
涓轟粈涔堝彨refresh錛熶篃灝辨槸璇村叾瀹炴槸鍒鋒柊鐨勬剰鎬濓紝璇OC瀹瑰櫒閲岄潰緇存姢浜嗕竴涓崟渚嬬殑BeanFactory錛屽鏋渂ean鐨勯厤緗湁淇敼錛屼篃鍙互鐩存帴璋冪敤refresh鏂規硶錛屽畠灝嗛攢姣佷箣鍓嶇殑BeanFactory錛岄噸鏂板垱寤轟竴涓狟eanFactory銆傛墍浠ュ彨refresh涔熸槸鑳界悊瑙g殑銆?/p>
浠ヤ笅鏄疪efresh鐨勫熀鏈楠わ細
1.鎶婇厤緗畑ml鏂囦歡杞崲鎴恟esource銆俽esource鐨勮漿鎹㈡槸鍏堥氳繃ResourcePatternResolver鏉ヨВ鏋愬彲璇嗗埆鏍煎紡鐨勯厤緗枃浠剁殑璺緞
(濡?classpath*:"絳?錛屽鏋滄病鏈夋寚瀹氭牸寮忥紝榛樿浼氭寜鐓х被璺緞鐨勮祫婧愭潵澶勭悊銆?nbsp;
2.鍒╃敤XmlBeanDefinitionReader瀹屾垚瀵箈ml鐨勮В鏋愶紝灝唜ml Resource閲屽畾涔夌殑bean瀵硅薄杞崲鎴愮粺涓鐨凚eanDefinition銆?br />3.灝咮eanDefinition娉ㄥ唽鍒癇eanFactory錛屽畬鎴愬BeanFactory鐨勫垵濮嬪寲銆侭eanFactory閲屽皢浼氱淮鎶や竴涓狟eanDefinition鐨凪ap銆?br />
褰揼etBean鐨勬椂鍊欏氨浼氭牴鎹皟鐢˙eanFactory錛屾牴鎹産ean鐨凚eanDifinition鏉ュ疄渚嬪寲涓涓猙ean銆傚綋鐒舵牴鎹産ean鐨刲azy-init銆乸rotetype絳夊睘鎬ц緗笉鍚屼互涓婅繃紼嬬暐鏈夊樊鍒?/p>
refresh()浠g爜濡備笅錛?/p>
浠ヤ笂鐨刼btainFreshBeanFactory鏄緢鍏抽敭鐨勪竴涓柟娉曪紝閲岄潰浼氳皟鐢╨oadBeanDefinition鏂規硶錛屽涓嬶細
LoadBeanDifinition鏂規硶寰堝叧閿紝榪欓噷鐗瑰畾浜庢暣涓狪OC瀹瑰櫒錛屽疄渚嬪寲浜嗕竴涓猉mlBeanDefinitionReader鏉ヨВ鏋怰esource鏂囦歡銆傚叧浜嶳esource鏂囦歡濡備綍鍒濆鍖栧拰xml鏂囦歡濡備綍瑙f瀽閮藉湪
閲岄潰鐨勫眰灞傝皟鐢ㄥ畬鎴愶紝榪欓噷涓嶅湪绱堪銆?/p>
Spring鐨勬墿灞曟ф槸姣嬪焊緗枒鐨勶紝瀛︿範spring鐨勮璁℃槸涓涓緢濂界殑瀹炶返鐞嗚緇撳悎銆備富瑕佷釜浜鴻寰楁湁鍑犵偣錛?/p>
1. 妗嗘灦欏跺眰鐨勮璁℃湁鐫寰堝ソ鐨勬娊璞★紝閬靛驚闈㈠悜鎺ュ彛緙栫▼鐨勮鑼冦?span style="font-size: 11pt; font-family: 'Courier New';">Resource銆?span style="font-size: 11pt; font-family: 'Courier New';">BeanFactory銆?span style="font-size: 11pt; font-family: 'Courier New';">ApplicationContext閮芥槸闈炲父濂界殑鎺ュ彛鎶借薄錛岄潪甯告槑紜殑瀹氫箟浜嗚緇勪歡鐨勪竴浜涘姛鑳姐?/p>
2. 鍒╃敤緇勫悎妯″紡銆?/p>
3. 涓粍浠剁殑瀹炵幇閲屽ぇ閲忎嬌鐢ㄤ簡妯℃澘鏂規硶妯″紡錛屾彁鍗囦簡鍚屼竴緇勪歡浠g爜鐨勫鐢ㄦс?/p>
4. 鍚勭璁捐淇濈暀浜嗘墿灞曠殑鎺ュ彛錛屽緢澶氬熀浜?span style="font-size: 11pt; font-family: 'Courier New';">spring鐨勬鏋墮兘鍙互寰堝鏄撶殑浠嬪叆瀹炵幇浜嗚嚜宸辯殑涓浜涙墿灞曘?/p>
5. 妗嗘灦閲岄噰鐢ㄩ噷寰堝緇忓吀鐨勮璁℃ā寮忥紝濡備唬鐞嗐佽楗般佺瓥鐣ョ瓑絳夈?br />
/opt/taobao/java/bin/java -Dprogram.name=run.sh –server
-Xms4g //鎸囧畾 jvm 鐨勬渶灝?/span> heap 澶у皬 錛?Xms榛樿鏄墿鐞嗗唴瀛樼殑1/4)
-Xmx4g //鎸囧畾 jvm 鐨勬渶澶?/span> heap 澶у皬
-Xmn2g
-Xss1m
-XX:PermSize=96m
-XX:MaxPermSize=256m
-XX:SurvivorRatio=10
-XX:+HeapDumpOnOutOfMemoryError //
-XX:HeapDumpPath=/home/admin/logs/java.hprof -verbose:gc -Xloggc:/home/admin/logs/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+UseConcMarkSweepGC
-XX:+UseCMSCompactAtFullCollection
-XX:CMSInitiatingOccupancyFraction=80
-XX:+UseCompressedOops
-XX:+DisableExplicitGC
-Djava.awt.headless=true
-Dsun.net.client.defaultConnectTimeout=10000
-Dsun.net.client.defaultReadTimeout=30000
-Djava.net.preferIPv4Stack=true
-Djava.endorsed.dirs=/opt/taobao/jboss/lib/endorsed
-classpath /opt/taobao/jboss/bin/run.jar:/opt/taobao/java/lib/tools.jar org.jboss.Main -b 0.0.0.0 -Djboss.server.home.dir=/home/admin/purdecision/.default -Djboss.server.home.url=file:/home/admin/purdecision/.default
榪欎簩騫存潵榪欎竴鍫嗕笢瑗挎垜浠庢潵娌℃湁鎬鐤戣繃錛?#8220;緇濆姝g‘瀹岀編”錛屾嵁璇存槸X瀹濈殑鏍囬厤銆備互鑷充簬浠庢潵娌℃湁鍘誨垎鏋愪簡瑙h繃錛堜竴鐭ュ崐瑙o級錛屽彲鑳界湡鐨勬槸鎯版т嬌鐒訛紝涔熷彲鑳?#8220;蹇?#8221;鍚с傛棤鎰忎腑鐪嬪埌鏈変漢鍦ㄥ崥瀹㈤噷鍐欏埌 “娓╂晠鐭ユ柊”錛屽氨鍍忔湁浜鴻璇?/span>think in java涓鏍鋒瘡涓鍥為兘鏈夋柊鐨勫彂鐜般備笅闈㈠氨鍒嗘瀽涓涓嬩負浠涔堣璁劇疆榪欎簺鍙傛暟錛屾湁浣曟剰涔夈?/span>
涓婇潰鍙傛暟璇存槑錛?/span>
-Xmx4g :
鎸囧畾 jvm 鐨勬渶澶?/span> heap 澶у皬錛岄粯璁ゅ間負鐗╃悊鍐呭瓨鐨?/span>1/4錛屾渶浣寵鍊煎簲璇ヨ鐗╃悊鍐呭瓨澶у皬鍙婅綆楁満鍐呭叾浠栧唴瀛樺紑閿鑰屽畾
-Xms4g :
鎸囧畾 jvm 鐨勬渶灝?/span> heap 澶у皬銆備簺鍊艱緗笌-Xmx鐩稿悓錛屼互閬垮厤姣忔鍨冨溇鍥炴敹瀹屾垚鍚?/span>JVM閲嶆柊鍒嗛厤鍐呭瓨
-Xmn2g :
璁劇疆騫磋交浠eぇ灝忎負2G銆傛暣涓爢澶у皬=騫磋交浠eぇ灝?/span> + 騫磋佷唬澶у皬 + 鎸佷箙浠eぇ灝忋傛寔涔呬唬涓鑸?/span>
鍥哄畾澶у皬涓?/span>64m錛屾墍浠ュ澶у勾杞諱唬鍚庯紝灝嗕細鍑忓皬騫磋佷唬澶у皬銆?span style="color:red">姝ゅ煎緋葷粺鎬ц兘褰卞搷杈冨ぇ錛?/span>Sun瀹樻柟鎺?/span>
鑽愰厤緗負鏁翠釜鍫嗙殑3/8銆?/span>(鎸夋璇村簲璁劇疆涓?/span>1.5G)
-Xss1m
姣忎釜綰跨▼鍫嗘爤澶у皬涓?/span>1M. 鏍規嵁搴旂敤鐨勭嚎紼嬫墍闇鍐呭瓨澶у皬榪涜璋冩暣銆傚湪鐩稿悓鐗╃悊鍐呭瓨涓?/span>,鍑忓皬榪欎釜鍊艱兘鐢熸垚鏇村鐨勭嚎紼嬨傦紙鏈満鐢變簬forest鐨勫師鍥?/span>-Xss2m錛屽師鍥?/span>1錛氱墿鐞嗗唴瀛樿繃灝?/span> 2錛?/span>window綰跨▼涓嶈兘澶 鐚滅殑錛?/span>
-XX:PermSize=96m
鐢ㄤ簬瀛樻斁闈欐佹枃浠訛紝濡備粖Java綾匯佹柟娉曠瓑銆傛寔涔呬唬瀵瑰瀮鍦懼洖鏀舵病鏈夋樉钁楀獎鍝嶏紝浣嗘槸鏈変簺搴旂敤鍙兘鍔ㄦ佺敓鎴愭垨
鑰呰皟鐢ㄤ竴浜?/span>class錛屼緥濡?/span>Hibernate絳夛紝鍦ㄨ繖縐嶆椂鍊欓渶瑕佽緗竴涓瘮杈冨ぇ鐨勬寔涔呬唬絀洪棿鏉ュ瓨鏀捐繖浜涜繍琛岃繃紼嬩腑鏂?/span>
澧炵殑綾匯傛寔涔呬唬澶у皬閫氳繃-XX:MaxPermSize=<N>榪涜璁劇疆
-XX:PermSize=64MB 鏈灝忓昂瀵革紝鍒濆鍒嗛厤
-XX:MaxPermSize=256MB 鏈澶у厑璁稿垎閰嶅昂瀵革紝鎸夐渶鍒嗛厤
榪囧皬浼氬鑷達細java.lang.OutOfMemoryError: PermGen space
MaxPermSize緙虹渷鍊煎拰-server -client閫夐」鐩稿叧銆?/span>
-server閫夐」涓嬮粯璁?/span>MaxPermSize涓?/span>64m
-client閫夐」涓嬮粯璁?/span>MaxPermSize涓?/span>32m
錛堜負浠涔堜笉鏄?/span>64M 鍙兘鏄?/span>webx璁劇疆鐨勬寔涔呬唬絀洪棿姣旇緝澶氾級
-XX:SurvivorRatio=10
錛?/span>SurvivorRatio=4璁劇疆騫磋交浠d腑Eden鍖轟笌Survivor鍖虹殑澶у皬姣斿箋傝緗負4錛屽垯涓や釜Survivor
鍖轟笌涓涓?/span>Eden鍖虹殑姣斿間負2:4錛屼竴涓?/span>Survivor鍖哄崰鏁翠釜騫磋交浠g殑1/6錛?/span>
榪欓噷璁劇疆涓?/span>10涔熷氨鏄涓涓?/span>Survivor鍖哄崰鏁翠釜騫磋交浠g殑1/12錛岃繖涓弬鏁版槸鍚﹁兘灝忎竴鐐癸紝姣曠珶鎴戜滑鐨勫簲鐢ㄤ腑娌℃湁鍒涘緩寰堝ぇ鐨勫鍍忋?/span>
榪欎釜鍊艱浜嗘湁浠涔堢敤錛?/span>
涓婇潰閰嶇疆涓?/span>-Xmn2g 騫磋交浠eぇ灝忥紝SurvivorRatio涓?/span>10鏃?/span> 錛?/span>Eden瓚呰繃1.66G鏃惰Е鍙?/span>minor gc(young generation)
鎴戠殑搴旂敤gc 鏃ュ織涓鐩村湪young gc 灝辨槸濡傛錛岀湅鏉ユ垜鐨勫簲鐢?/span> eden鍖鴻繕鏄鐨勫緢澶х殑銆?/span>
-XX:+HeapDumpOnOutOfMemoryError
鍙傛暟琛ㄧず褰?/span>JVM鍙戠敓OOM鏃訛紝鑷姩鐢熸垚DUMP鏂囦歡銆?/span>
-XX:HeapDumpPath=${鐩綍}鍙傛暟琛ㄧず鐢熸垚DUMP鏂囦歡鐨勮礬寰勶紝涔熷彲浠ユ寚瀹氭枃浠跺悕縐幫紝渚嬪錛?/span>-XX:HeapDumpPath=${鐩綍}/java_heapdump.hprof銆傚鏋滀笉鎸囧畾鏂囦歡鍚嶏紝榛樿涓猴細java_<pid>_<date>_<time>_heapDump.hprof銆?/span>
-XX:+PrintGCDetails錛?/span>
杈撳嚭褰㈠紡錛?/span>[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs] [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured:
112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
-XX:+PrintGCTimeStamps -XX:+PrintGC錛?/span>PrintGCTimeStamps鍙笌涓婇潰涓や釜娣峰悎浣跨敤
杈撳嚭褰㈠紡錛?/span>11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]
-XX:+UseConcMarkSweepGC
璁劇疆騫跺彂鏀墮泦鍣?/span>
鍙互淇濊瘉澶ч儴鍒嗗伐浣滈兘騫跺彂榪涜錛堝簲鐢ㄤ笉鍋滄錛夛紝鍨冨溇鍥炴敹鍙殏鍋滃緢灝戠殑鏃墮棿錛屾鏀墮泦鍣ㄩ傚悎瀵瑰搷搴旀椂闂磋姹?/span>
姣旇緝楂樼殑涓佸ぇ瑙勬ā搴旂敤銆備嬌鐢?/span>-XX:+UseConcMarkSweepGC鎵撳紑銆?/span>
騫跺彂鏀墮泦鍣ㄤ富瑕佸噺灝戝勾鑰佷唬鐨勬殏鍋滄椂闂達紝浠栧湪搴旂敤涓嶅仠姝㈢殑鎯呭喌涓嬩嬌鐢ㄧ嫭绔嬬殑鍨冨溇鍥炴敹綰跨▼錛岃窡韙彲杈懼
璞°傚湪姣忎釜騫磋佷唬鍨冨溇鍥炴敹鍛ㄦ湡涓紝鍦ㄦ敹闆嗗垵鏈熷茍鍙戞敹闆嗗櫒 浼氬鏁翠釜搴旂敤榪涜綆鐭殑鏆傚仠錛屽湪鏀墮泦涓繕浼氬啀鏆?/span>
鍋滀竴嬈°傜浜屾鏆傚仠浼氭瘮絎竴嬈$◢闀匡紝鍦ㄦ榪囩▼涓涓嚎紼嬪悓鏃惰繘琛屽瀮鍦懼洖鏀跺伐浣溿?/span>
CMS閲囩敤鐨勫熀紜綆楁硶鏄細鏍囪—娓呴櫎 鎵鏈?/span>CMS涓嶄細鏁寸悊銆佸帇緙╁爢絀洪棿銆傝繖鏍峰氨浼氭湁涓涓棶棰橈細緇忚繃CMS鏀墮泦鐨勫爢浼氫駭鐢熺┖闂寸鐗?/span>
-XX:CMSInitiatingOccupancyFraction=80
鍚姩騫跺彂鏀墮泦鍣細鍥犱負騫跺彂鏀墮泦鍦ㄥ簲鐢ㄨ繍琛屾椂榪涜鏀墮泦錛屾墍浠ュ繀欏諱繚璇佹敹闆嗗畬鎴愪箣鍓嶆湁瓚沖鐨勫唴瀛樼┖闂翠緵紼?/span>
搴忎嬌鐢紝鍚﹀垯浼氬嚭鐜?#8220;Concurrent Mode Failure”銆傞氳繃璁劇疆-XX:CMSInitiatingOccupancyFraction=<N>
鎸囧畾榪樻湁澶氬皯鍓╀綑鍫嗘椂寮濮嬫墽琛屽茍鍙戞敹闆?/span>
-XX:+UseCMSCompactAtFullCollection錛?/span>
鎵撳紑瀵瑰勾鑰佷唬鐨勫帇緙┿傚彲鑳戒細褰卞搷鎬ц兘錛屼絾鏄彲浠ユ秷闄ょ鐗?/span>
XX:+UseCompressedOops
閫氬父64浣?/span>JVM娑堣楃殑鍐呭瓨浼氭瘮32浣嶇殑澶?/span>1.5鍊嶏紝榪欐槸鍥犱負瀵硅薄鎸囬拡鍦?/span>64浣嶆灦鏋勪笅錛岄暱搴︿細緲誨嶏紙鏇村鐨勫鍧錛夈?/span>
瀵逛簬閭d簺灝嗚浠?/span>32浣嶅鉤鍙扮Щ妞嶅埌64浣嶇殑搴旂敤鏉ヨ錛屽鉤鐧芥棤杈滃浜?/span>1/2鐨勫唴瀛樺崰鐢紝榪欐槸寮鍙戣呬笉鎰挎剰鐪嬪埌鐨勩?/span>
騫歌繍鐨勬槸錛屼粠JDK 1.6 update14寮濮嬶紝64 bit JVM姝e紡鏀寔浜?/span> -XX:+UseCompressedOops 榪欎釜鍙互鍘嬬緝鎸囬拡錛岃搗鍒拌妭綰﹀唴瀛樺崰鐢ㄧ殑鏂板弬鏁?/span>
-XX:-DisableExplicitGC
灝嗕細蹇界暐鎵嬪姩璋冪敤GC鐨勪唬鐮侊紝濡傦細System.gc()錛屽皢-DisableExplicitGC錛?/span> 鏀規垚+DisableExplicitGC鍗充負鍚敤錛岄粯璁や負鍚敤錛屼粈涔堜篃涓嶅啓錛岄粯璁ゆ槸鍔犲彿錛屼絾鏄郴緇熷唴閮ㄩ粯璁ょ殑騫朵笉鏄粈涔堥兘鍚敤
鑷蟲涓轟粈涔?/span>Xmx涓?/span>xms 涓鏍鳳紝涓轟粈涔堢敤CMS錛堝茍鍙戞敹闆嗗櫒錛夛紝涓轟粈涔堢敤浜?/span>cms 瑕佷嬌鐢?/span>-XX:+UseCMSCompactAtFullCollection錛屼負浠涔堢敤XX:+UseCompressedOops絳夌瓑錛岀浉淇″ぇ瀹跺拰鎴戜竴鏍鋒湁鎵浜嗚В銆備笉榪囧浜庢湁浜涜繕鏄笉娓呮鐞嗚В鏈夎錛屽彲鑳借繕瑕佹潵鏉ュ洖鍥炴崳鑵撅紝涓嶈凍涔嬪璇峰ぇ瀹惰ˉ鍏呫?/span>