锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1銆備笉瑕佷嬌鐢╝utowiring
Spring 鍙互閫氳繃綾葷殑鑷渷鏉ヨ嚜鍔ㄧ粦瀹氬叾渚濊禆閮ㄥ垎錛屼嬌寰椾綘涓嶅繀鏄庣‘鎸囨槑bean鐨勫睘鎬у拰鏋勯犲櫒銆侭ean鐨勫睘鎬у彲浠ラ氳繃灞炴у悕縐版垨綾誨瀷鍖歸厤鏉ュ疄鐜拌嚜鍔ㄧ粦瀹氥傛瀯閫犲櫒閫氳繃綾誨瀷鍖歸厤鏉ュ疄鐜拌嚜鍔ㄧ粦瀹氥備綘鐢氳嚦鍙互鎸囧畾鑷姩媯嫻嬭嚜鍔ㄧ粦瀹氭ā寮忥紝瀹冨彲浠ュ紩瀵糞pring閫夋嫨涓縐嶉傚綋鐨勮繍琛屾満鍒躲傚厛鏉ョ湅鐪嬩笅闈㈢殑涓涓緥瀛愶細
OrderService 綾葷殑灞炴у悕鍦ㄥ鍣ㄤ腑鐢ㄤ簬鍖歸厤bean瀹炰緥銆傝嚜鍔ㄧ粦瀹氬彲浠ユ綔鍦ㄥ湴鑺傜渷涓浜涙墦瀛楀拰鍑忓皯涓浜涙販涔便備絾鏄湪鐜板疄涓栫晫鐨勫伐紼嬮噷浣犱笉搴旇浣跨敤榪欑鏂瑰紡錛岃繖鏄洜涓哄畠鐗虹壊浜嗛厤緗殑娓呮櫚鎬у拰鍙淮鎶ゆс傝澶氭寚鍗楀拰浠嬬粛涓ぇ閲忓惞鎹ц嚜鍔ㄧ粦瀹氭槸Spring鐨勪竴縐嶆瀬濂界殑鐗瑰緛鑰屾病鏈夋彁鍒拌繖涓鐗規(guī)ф墍甯︽潵鐨勭壓鐗層備緷鎴戠殑瑙傜偣錛岃繖灝卞儚 Spring涓殑object錛峱ooling錛屽畠鏇村儚鏄竴縐嶄負浜嗗崰鎹洿澶氬競鍦虹殑鍟嗕笟鐗瑰緛銆傚畠瀵逛簬XML閰嶇疆鏂囦歡鐨勫皬宸у寲鏄竴涓ソ鍔炴硶錛屼絾瀹為檯涓婁篃澧炲姞浜嗗鏉傜▼搴︼紝灝ゅ叾褰撲綘榪愯鏈夊ぇ閲忕被澹版槑鐨勫伐紼嬫椂銆傝櫧鐒禨pring鍏佽浣犳販鍚堣嚜鍔ㄧ粦瀹氬拰鎵嬪姩緇戝畾錛屼絾鏄繖涓煕鐩句細浣縓ML閰嶇疆鏇村姞鏅︽訂闅炬噦銆?/font>
2.浣跨敤閫氫織鐨勫懡鍚?/font>
榪欎釜鏂瑰紡瀵逛簬Java緙栫爜涔熶竴鏍烽傜敤銆傚湪宸ョ▼涓嬌鐢ㄦ竻鏅扮殑銆佹弿榪版х殑銆佸崗璋冪殑閫氫織鍚嶇О瀵逛簬寮鍙戣呯悊瑙ML閰嶇疆鏄崄鍒嗘湁鐩婄殑銆備緥濡傚浜巄ean ID錛屼綘鍙互鏍規(guī)嵁閫氫織鐨凧ava綾誨悕鏉ュ懡鍚嶅畠銆傚浜庝緥瀛愪腑OrderServiceDAO鐨刡ean ID鍛藉悕涓簅rderServiceDAO銆傚浜庡ぇ鐨勫伐紼嬶紝浣犲彲浠ュ湪bean ID鍓嶉潰鍔犱笂鍖呭悕浣滀負鍓嶇紑銆?/font>
3. 浣跨敤綆媧佺殑褰㈠紡
綆媧佸艦寮忛伩鍏嶄簡鍐楅暱錛屾槸鍥犱負瀹冧粠瀛愬厓绱犱腑灝嗗睘鎬у煎拰鍙傝冨啓鍒板睘鎬т腑銆備緥濡備笅闈㈢殑渚嬪瓙錛?/font>
鍙互浣跨敤綆媧佸艦寮忓皢涓婅堪浠g爜閲嶅啓涓猴細
綆媧佸艦寮忓姛鑳藉湪1.2鐗堟湰涓彲浠ヤ嬌鐢ㄣ傚浜?lt;ref local="...">娌℃湁綆媧佸艦寮忋?br />綆媧佸艦寮忎笉浣嗗彲浠ヨ妭綰︿綘鐨勬墦瀛楋紝鑰屼笖鍙互浣縓ML閰嶇疆鏂囦歡娓呮櫚銆傚畠鏈寮曚漢娉ㄧ洰鐨勬槸褰撳湪涓涓厤緗枃浠朵腑鏈夊ぇ閲忓畾涔夌殑綾繪椂鍙互鎻愰珮鏄撹鎬с?/font>
4. 瀵逛簬鏋勯犲櫒鍙傛暟鍖歸厤錛岀被鍨嬪悕姣斿簭鍙峰ソ銆?/font>
褰撲竴涓瀯閫犲櫒鍚湁涓涓互涓婄殑鍚岀綾誨瀷鐨勫弬鏁幫紝鎴栬呭睘鎬у肩殑鏍囩宸茬粡琚崰鐢ㄦ椂錛孲pring鍏佽浣犱嬌鐢ㄤ粠0璁℃暟鐨勫簭鍙鋒潵瑙e喅榪欎簺浼氬甫鏉ユ販娣嗙殑闂銆備緥濡傦細
鍍忎笅闈㈣繖鏍鳳紝鍒╃敤綾誨瀷灞炴ф潵緙栧啓浼氭洿濂戒竴浜涳細
浣跨敤绱㈠紩鍙互紼嶇◢鍑忓皯涓浜涘啑闀匡紝浣嗘槸鍜屼嬌鐢ㄧ被鍨嬪睘鎬х浉姣旓紝瀹冭繕鏄湁瀹規(guī)槗鍙戠敓閿欒鐨勫懼悜鍜岄毦浜庨槄璇葷殑緙虹偣銆備綘搴旇鍙湪鏋勯犲櫒鍙傛暟涓嶆槑紜殑鏃跺欙紝鎵嶄嬌鐢ㄧ儲寮曡繖涓鏂規(guī)硶銆?/font>
5. 灝藉彲鑳介噸鐢ㄥ凡瀹氫箟榪囩殑bean
Spring 鎻愪緵涓縐嶇被浼肩戶鎵夸竴鏍風殑鏈哄埗鏉ュ噺灝戦厤緗俊鎭殑澶嶅埗騫剁畝鍖朮ML閰嶇疆銆傚畾涔変竴涓瓙綾誨彲浠ヤ粠瀹冪埗綾婚偅閲岀戶鎵塊厤緗俊鎭紝鑰岀埗綾誨疄璐ㄤ笂浣滀負瀛愮被鐨勪竴涓ā鏉褲傝繖灝辨槸澶у伐紼嬩腑鎵璋撶殑閲嶇敤銆備綘鎵闇瑕佸仛鐨勫氨鏄湪鐖剁被bean涓緗產(chǎn)bstract=true錛岀劧鍚庡湪瀛恇ean娉ㄦ槑瀹冭嚜宸辯殑鐖剁被bean銆備緥濡傦細
ShippingService綾諱粠abstractService綾婚偅閲岀戶鎵縞ompanyName灞炴х殑鍊尖斺攍izjason銆傚鏋滀綘娌℃湁涓轟竴涓猙ean鎸囨槑綾繪垨factory鏂規(guī)硶錛岄偅涔堣繖涓猙ean渚挎槸鎶借薄鐨勩?/font>
6. 灝介噺浣跨敤ApplicationContext鏉ヨ閰嶅畾涔夌殑bean
鍍忓湪Ant鑴氭湰涓殑寮曠敤涓鏍鳳紝Spring鐨勫紩鐢ㄥ浜庤閰嶆ā鍧楀寲鐨刡ean鏉ヨ鏄緢鏈夌敤鐨勩備緥濡傦細
鐩稿浜庝嬌鐢╥mport鍦╔ML閰嶇疆涓潵棰勮閰嶏紝閫氳繃ApplicationContext鏉ラ厤緗繖浜沚eans錛屾樉寰楁洿鍔犵伒媧匯傚埄鐢?ApplicationContext涔熶嬌寰梄ML閰嶇疆鏄撲簬綆$悊銆備綘鍙互鍍忎笅闈㈢殑渚嬪瓙閭f牱鍦ˋpplictionContext鏋勯犲櫒閲屽竷緗産ean錛?br />
7. 鍒╃敤id浣滀負bean鐨勬爣璇嗙
浣犲彲浠ユ寚瀹氫竴涓猧d鎴栧悕縐版潵浣滀負bean鐨勬爣璇嗙銆傝櫧鐒朵嬌鐢╥d涓嶄細鎻愰珮鏄撹鎬э紝浣嗘槸瀹冨彲浠ヨXML parser瀵筨ean鐨勫紩鐢ㄦ湁鏁堟柟闈㈣繘琛屾洿濂界殑楠岃瘉銆傚鏋滅敱浜嶺ML IDREF鐨勯檺鍒惰屼笉鑳戒嬌鐢ㄦ煇涓猧d錛屼綘鍙互鍒╃敤names鏉ヤ綔涓篵ean鐨勬爣璇嗙銆俋ML IDREF鐨勯檺鍒舵槸id蹇呴』浠ュ瓧姣嶅紑澶達紙鎴栬呭湪XML瑙勮寖涓畾涔夌殑鏍囩偣絎﹀彿錛夛紝鍚庨潰鎺ョ潃瀛楁瘝錛屾暟瀛楋紝榪炲瓧鍙鳳紝涓嬪垝綰匡紝鍐掑彿絳夈傚疄闄呬笂錛岄亣鍒癤ML IDREF闄愬埗鐨勯棶棰樻槸寰堝皯瑙佺殑銆?/font>
8. 鍦ㄥ紑鍙戦樁孌典嬌鐢ㄤ緷璧栨楠?/font>
浣犲彲浠ュ湪bean涓粰渚濊禆媯楠岀殑灞炴ц緗鹼紝鑰屼笉閲囩敤鍘熷厛榛樿鐨勭┖鍊鹼紝灞炴ц緗緥濡俿imple錛宱bject鎴朼ll錛屼互渚垮鍣ㄨ繘琛屼緷璧栨楠屻傚綋bean鐨勫叏閮ㄧ殑灞炴э紙鎴栨煇綾誨睘鎬э級闇瑕佽鏄庣‘璁劇疆鎴栬嚜鍔ㄧ粦瀹氭椂錛屼緷璧栨楠屼究鏄懼緱寰堟湁鐢ㄣ?/font>
鍦ㄨ繖涓緥瀛愰噷錛屽鍣ㄧ‘淇濅負orderService bean璁劇疆鐨勫睘鎬т笉鏄痯rimitives 鎴栬?collections銆備負鎵鏈夌殑bean璁劇疆榛樿渚濊禆媯嫻嬩篃鏄彲浠ョ殑錛屼絾鏄垜浠緢灝戣繖鏍峰仛錛屾槸鍥犱負鏈変簺bean鐨勫睘鎬ф牴鏈氨涓嶅繀璁劇疆銆?/font>
9. 涓烘瘡涓厤緗枃浠跺姞涓婁竴涓猦eader comment
鏈濂戒嬌鐢╠escriptive id鍜屽悕縐版潵浠f浛鍦╔ML閰嶇疆鏂囦歡涓殑娉ㄩ噴銆傛澶栵紝鍔犱笂涓涓厤緗枃浠秇eader涔熷緢鏈夌敤澶勶紝瀹冨彲浠ユ榪版枃浠朵腑鎵瀹氫箟鐨刡ean銆備綘鍙互閫夋嫨灝嗘弿榪板唴瀹瑰姞鍏escription鏍囩涓備緥濡傦細
浣跨敤description鏍囩鐨勪竴涓ソ澶勬槸鍙互瀹規(guī)槗鍦板埄鐢ㄥ伐鍏蜂粠鏍囩涓夊彇鍑篸escription錛堢殑鍐呭錛夈?/p>
10. 瀵逛簬浠諱綍鍙樺寲錛岃涓庨槦鍙嬬Н鏋佷氦嫻?br />褰撲綘閲嶆瀯Java浠g爜鏃訛紝浣犻渶瑕侀殢鏃舵洿鏂伴厤緗枃浠跺茍涓旈氱煡闃熷弸銆俋ML閰嶇疆鏂囦歡涔熸槸浠g爜錛屽畠浠槸搴旂敤紼嬪簭鐨勮嚦鍏抽噸瑕佺殑閮ㄥ垎錛屼絾鏄畠浠毦浜庨槄璇誨拰緇存姢銆傚ぇ閮ㄥ垎鏃墮棿浣犳棦瑕侀槄璇籜ML閰嶇疆鏂囦歡鍙堣闃呰榪愯涓殑Java浠g爜銆?/font>
11. Setter injection浼樹簬constructor injection
Spring鎻愪緵3縐嶇被鍨嬬殑渚濊禆娉ㄥ叆錛?constructor injection,setter injection, 鍜宮ethod injection銆傛垜浠竴鑸彧鐢ㄥ墠涓ょ綾誨瀷銆?/font>
榪欎釜渚嬪瓙涓紝orderService綾諱嬌鐢ㄧ殑鏄痗onstructor injection錛岃孊illingService綾諱嬌鐢ㄧ殑鏄痵etter injection銆俢onstructor injection鍙互紜繚bean涓嶄細鍦ㄤ竴涓潪娉曠姸鎬佷笅琚垱寤猴紝浣嗘槸setter injection鏇村姞鐏墊椿騫朵笖鏇存槗綆$悊錛屽挨鍏跺綋綾誨瓨鍦ㄥ緢澶氬睘鎬у茍涓斿叾涓竴浜涙槸鍙夌殑鎯呭喌涓嬨?/font>
12. 涓嶈婊ョ敤渚濊禆娉ㄥ叆
浣滀負鏈鍚庝竴鐐癸紝Spring ApplicationContext鍙互鏇夸綘鍒涘緩Java瀵硅薄錛屼絾鏄茍涓嶆槸鎵鏈夌殑Java瀵硅薄閮介氳繃渚濊禆娉ㄥ叆鏉ュ垱寤虹殑銆備緥濡傦紝鍏ㄥ眬鐨勫璞′笉搴旇閫氳繃 ApplicationContext鏉ュ垱寤恒係pring鏄竴涓緢媯掔殑妗嗘灦錛屼絾鏄紝灝辨槗璇繪у拰鏄撶鐞嗘ц岃█錛屽綋瀹氫箟澶ч噺bean鐨勬椂鍊欙紝鍩轟簬XML鐨勯厤緗棶棰樺氨浼氱獊鍑恒傝繃搴︾殑渚濊禆娉ㄥ叆浼氫嬌XML閰嶇疆鍙樺緱澶嶆潅鑰屼笖鑷冭偪銆傝浣忥紒浣跨敤寮哄ぇ鐨処DE鏃訛紝渚嬪Eclipse鍜孖ntelliJ錛屼笌XML鏂囦歡鐩告瘮錛?Java浠g爜鏇村姞鏄撹錛屾槗緇存姢錛屾槗綆$悊銆?/font>
鎬葷粨
瀵逛簬Spring鐨勯厤緗紝XML鏄緢浼樼鐨勬柟寮忋備絾褰撳畾涔夊ぇ閲廱ean鏃訛紝鍩轟簬XML閰嶇疆浼氬彉寰楀啑闀匡紝絎ㄦ嫏銆係pring鎻愪緵浜嗕赴瀵岀殑閰嶇疆閫夐」銆傞傚綋鍦板埄鐢ㄥ叾涓殑閫夐」鍙互浣縓ML閰嶇疆娓呮櫚錛屼絾鏄紝鏈変簺閫夐」錛屼緥濡俛utowiring錛堣嚜鍔ㄧ粦瀹氾級錛屽線寰浼氶檷浣庢槗璇繪у拰鏄撶淮鎶ゆс傛枃绔犱腑鎵鍒椾婦鐨勫疄渚嬶紝鍙互甯姪浣犲垱寤哄嚭娓呮櫚鏄撹鐨刋ML閰嶇疆鏂囦歡銆?br />
鏂囩珷鏉ユ簮錛?a >http://tb.blog.csdn.net/TrackBack.aspx?PostId=1360429