銆愮涓€绔犮€?Spring姒傝堪 鈥斺€旇窡鎴戝Spring3 .零

銆愮涓€绔犮€?Spring姒傝堪 鈥斺€旇窡鎴戝Spring3 .0

1.1.1聽 Spring鏄粈涔?/h3>

Spring鏄竴涓紑婧愮殑杞婚噺绾ava SE锛圝ava 鏍囧噯鐗堟湰锛?Java EE锛圝ava 浼佷笟鐗堟湰锛夊紑鍙戝簲鐢ㄦ鏋讹紝鍏剁洰鐨勬槸鐢ㄤ簬绠€鍖栦紒涓氱骇搴旂敤绋嬪簭寮€鍙戙€傚簲鐢ㄧ▼搴忔槸鐢变竴缁勭浉浜掑崗浣滅殑瀵硅薄缁勬垚銆傝€屽湪浼犵粺搴旂敤绋嬪簭寮€鍙戜腑锛屼竴涓畬鏁寸殑搴旂敤鏄敱涓€缁勭浉浜掑崗浣滅殑瀵硅薄缁勬垚銆傛墍浠ュ紑鍙戜竴涓簲鐢ㄩ櫎浜嗚寮€鍙戜笟鍔¢€昏緫涔嬪锛屾渶澶氱殑鏄叧娉ㄥ浣曚娇杩欎簺瀵硅薄鍗忎綔鏉ュ畬鎴愭墍闇€鍔熻兘锛岃€屼笖瑕佷綆鑰﹀悎銆侀珮鍐呰仛銆備笟鍔¢€昏緫寮€鍙戞槸涓嶅彲閬垮厤鐨勶紝閭e鏋滄湁涓鏋跺嚭鏉ュ府鎴戜滑鏉ュ垱寤哄璞″強绠$悊杩欎簺瀵硅薄涔嬮棿鐨勪緷璧栧叧绯汇€傚彲鑳芥湁浜鸿浜嗭紝姣斿鈥滄娊璞″伐鍘傘€佸伐鍘傛柟娉曡璁℃ā寮忊€濅笉涔熷彲浠ュ府鎴戜滑鍒涘缓瀵硅薄锛屸€滅敓鎴愬櫒妯″紡鈥濆府鎴戜滑澶勭悊瀵硅薄闂寸殑渚濊禆鍏崇郴锛屼笉涔熻兘瀹屾垚杩欎簺鍔熻兘鍚楋紵鍙槸杩欎簺鍙堥渶瑕佹垜浠垱寤哄彟涓€浜涘伐鍘傜被銆佺敓鎴愬櫒绫伙紝鎴戜滑鍙堣鑰屽绠$悊杩欎簺绫伙紝澧炲姞浜嗘垜浠殑璐熸媴锛屽鏋滆兘鏈夌閫氳繃閰嶇疆鏂瑰紡鏉ュ垱寤哄璞★紝绠$悊瀵硅薄涔嬮棿渚濊禆鍏崇郴锛屾垜浠笉闇€瑕侀€氳繃宸ュ巶鍜岀敓鎴愬櫒鏉ュ垱寤哄強绠$悊瀵硅薄涔嬮棿鐨勪緷璧栧叧绯伙紝杩欐牱鎴戜滑鏄笉鏄噺灏戜簡璁稿宸ヤ綔锛屽姞閫熶簡寮€鍙戯紝鑳借妭鐪佸嚭寰堝鏃堕棿鏉ュ共鍏朵粬浜嬨€係pring妗嗘灦鍒氬嚭鏉ユ椂涓昏灏辨槸鏉ュ畬鎴愯繖涓姛鑳姐€?/p>

Spring妗嗘灦闄や簡甯垜浠鐞嗗璞″強鍏朵緷璧栧叧绯伙紝杩樻彁渚涘儚閫氱敤鏃ュ織璁板綍銆佹€ц兘缁熻銆佸畨鍏ㄦ帶鍒躲€佸紓甯稿鐞嗙瓑闈㈠悜鍒囬潰鐨勮兘鍔涳紝杩樿兘甯垜绠$悊鏈€澶寸柤鐨勬暟鎹簱浜嬪姟锛屾湰韬彁渚涗簡涓€濂楃畝鍗曠殑JDBC璁块棶瀹炵幇锛屾彁渚涗笌绗笁鏂规暟鎹闂鏋堕泦鎴愶紙濡侶ibernate銆丣PA锛夛紝涓庡悇绉岼ava EE鎶€鏈暣鍚堬紙濡侸ava Mail銆佷换鍔¤皟搴︾瓑绛夛級锛屾彁渚涗竴濂楄嚜宸辩殑web灞傛鏋禨pring MVC銆佽€屼笖杩樿兘闈炲父绠€鍗曠殑涓庣涓夋柟web妗嗘灦闆嗘垚銆備粠杩欓噷鎴戜滑鍙互璁や负Spring鏄竴涓秴绾х矘鍚堝钩鍙帮紝闄や簡鑷繁鎻愪緵鍔熻兘澶栵紝杩樻彁渚涚矘鍚堝叾浠栨妧鏈拰妗嗘灦鐨勮兘鍔涳紝浠庤€屼娇鎴戜滑鍙互鏇磋嚜鐢辩殑閫夋嫨鍒板簳浣跨敤浠€涔堟妧鏈繘琛屽紑鍙戙€傝€屼笖涓嶇鏄疛AVA SE锛圕/S鏋舵瀯锛夊簲鐢ㄧ▼搴忚繕鏄疛AVA EE锛圔/S鏋舵瀯锛夊簲鐢ㄧ▼搴忛兘鍙互浣跨敤杩欎釜骞冲彴杩涜寮€鍙戙€傝鎴戜滑鏉ユ繁鍏ョ湅涓€涓婼pring鍒板簳鑳藉府鎴戜滑鍋氫簺浠€涔堬紵

1.1.2聽聽 Spring鑳藉府鎴戜滑鍋氫粈涔?/h3>

Spring闄や簡涓嶈兘甯垜浠啓涓氬姟閫昏緫锛屽叾浣欑殑鍑犱箮浠€涔堥兘鑳藉府鍔╂垜浠畝鍖栧紑鍙戯細

涓€銆佷紶缁熺▼搴忓紑鍙戯紝鍒涘缓瀵硅薄鍙婄粍瑁呭璞¢棿渚濊禆鍏崇郴鐢辨垜浠湪绋嬪簭鍐呴儴杩涜鎺у埗锛岃繖鏍蜂細鍔犲ぇ鍚勪釜瀵硅薄闂寸殑鑰﹀悎锛屽鏋滄垜浠淇敼瀵硅薄闂寸殑渚濊禆鍏崇郴灏卞繀椤讳慨鏀规簮浠g爜锛岄噸鏂扮紪璇戙€侀儴缃诧紱鑰屽鏋滈噰鐢⊿pring锛屽垯鐢盨pring鏍规嵁閰嶇疆鏂囦欢鏉ヨ繘琛屽垱寤哄強缁勮瀵硅薄闂翠緷璧栧叧绯伙紝鍙渶瑕佹敼閰嶇疆鏂囦欢鍗冲彲锛屾棤闇€閲嶆柊缂栬瘧銆傛墍浠ワ紝Spring鑳藉府鎴戜滑鏍规嵁閰嶇疆鏂囦欢鍒涘缓鍙婄粍瑁呭璞′箣闂寸殑渚濊禆鍏崇郴銆?/strong>

浜屻€佸綋鎴戜滑瑕佽繘琛屼竴浜涙棩蹇楄褰曘€佹潈闄愭帶鍒躲€佹€ц兘缁熻绛夋椂锛屽湪浼犵粺搴旂敤绋嬪簭褰撲腑鎴戜滑鍙兘鍦ㄩ渶瑕佺殑瀵硅薄鎴栨柟娉曚腑杩涜锛岃€屼笖姣斿鏉冮檺鎺у埗銆佹€ц兘缁熻澶ч儴鍒嗘槸閲嶅鐨勶紝杩欐牱浠g爜涓氨瀛樺湪澶ч噺閲嶅浠g爜锛屽嵆浣挎湁浜鸿鎴戞妸閫氱敤閮ㄥ垎鎻愬彇鍑烘潵锛岄偅蹇呯劧瀛樺湪璋冪敤杩樻槸瀛樺湪閲嶅锛屽儚鎬ц兘缁熻鎴戜滑鍙兘鍙槸鍦ㄥ繀瑕佹椂鎵嶈繘琛岋紝鍦ㄨ瘖鏂畬姣曞悗瑕佸垹闄よ繖浜涗唬鐮侊紱杩樻湁鏃ュ織璁板綍锛屾瘮濡傝褰曚竴浜涙柟娉曡闂棩蹇椼€佹暟鎹闂棩蹇楃瓑绛夛紝杩欎簺閮戒細娓楅€忓埌鍚勪釜瑕佽闂柟娉曚腑锛涜繕鏈夋潈闄愭帶鍒讹紝蹇呴』鍦ㄦ柟娉曟墽琛屽紑濮嬭繘琛屽鏍革紝鎯虫兂杩欎簺鏄涔堝彲鎬曡€屼笖鏄涔堟棤鑱婄殑宸ヤ綔銆傚鏋滈噰鐢⊿pring锛岃繖浜涙棩蹇楄褰曘€佹潈闄愭帶鍒躲€佹€ц兘缁熻浠庝笟鍔¢€昏緫涓垎绂诲嚭鏉ワ紝閫氳繃Spring鏀寔鐨勯潰鍚戝垏闈㈢紪绋嬶紝鍦ㄩ渶瑕佽繖浜涘姛鑳界殑鍦版柟鍔ㄦ€佹坊鍔犺繖浜涘姛鑳斤紝鏃犻渶娓楅€忓埌鍚勪釜闇€瑕佺殑鏂规硶鎴栧璞′腑锛涙湁浜哄彲鑳借浜嗭紝鎴戜滑鍙互浣跨敤鈥滀唬鐞嗚璁℃ā寮忊€濇垨鈥滃寘瑁呭櫒璁捐妯″紡鈥濓紝浣犲彲浠ヤ娇鐢ㄨ繖浜涳紝浣嗚繕鏄渶瑕侀€氳繃缂栫▼鏂瑰紡鏉ュ垱寤轰唬鐞嗗璞★紝杩樻槸瑕佽€﹀悎杩欎簺浠g悊瀵硅薄锛岃€岄噰鐢⊿pring 闈㈠悜鍒囬潰缂栫▼鑳芥彁渚涗竴绉嶆洿濂界殑鏂瑰紡鏉ュ畬鎴愪笂杩板姛鑳斤紝涓€鑸€氳繃閰嶇疆鏂瑰紡锛岃€屼笖涓嶉渶瑕佸湪鐜版湁浠g爜涓坊鍔犱换浣曢澶栦唬鐮侊紝鐜版湁浠g爜涓撴敞涓氬姟閫昏緫銆傛墍浠ワ紝Spring聽闈㈠悜鍒囬潰缂栫▼鑳藉府鍔╂垜浠棤鑰﹀悎鐨勫疄鐜版棩蹇楄褰曪紝鎬ц兘缁熻锛屽畨鍏ㄦ帶鍒躲€?/strong>

涓夈€佸湪浼犵粺搴旂敤绋嬪簭褰撲腑锛屾垜浠浣曟潵瀹屾垚鏁版嵁搴撲簨鍔$鐞嗭紵闇€瑕佷竴绯诲垪鈥滆幏鍙栬繛鎺ワ紝鎵цSQL锛屾彁浜ゆ垨鍥炴粴浜嬪姟锛屽叧闂繛鎺モ€濓紝鑰屼笖杩樿淇濊瘉鍦ㄦ渶鍚庝竴瀹氳鍏抽棴杩炴帴锛屽涔堝彲鎬曠殑浜嬫儏锛岃€屼笖涔熷緢鏃犺亰锛涘鏋滈噰鐢⊿pring锛屾垜浠彧闇€鑾峰彇杩炴帴锛屾墽琛孲QL锛屽叾浠栫殑閮戒氦缁橲pring鏉ョ鐞嗕簡锛岀畝鍗曞惂銆傛墍浠ワ紝Spring鑳介潪甯哥畝鍗曠殑甯垜浠鐞嗘暟鎹簱浜嬪姟銆?/strong>

鍥涖€丼pring杩樻彁渚涗簡涓庣涓夋柟鏁版嵁璁块棶妗嗘灦锛堝Hibernate銆丣PA锛夋棤缂濋泦鎴愶紝鑰屼笖鑷繁涔熸彁渚涗簡涓€濂桱DBC璁块棶妯℃澘锛屾潵鏂逛究鏁版嵁搴撹闂€?/p>

浜斻€丼pring杩樻彁渚涗笌绗笁鏂筗eb锛堝Struts銆丣SF锛夋鏋舵棤缂濋泦鎴愶紝鑰屼笖鑷繁涔熸彁渚涗簡涓€濂桽pring MVC妗嗘灦锛屾潵鏂逛究web灞傛惌寤恒€?/p>

鍏€丼pring鑳芥柟渚跨殑涓嶫ava EE锛堝Java Mail銆佷换鍔¤皟搴︼級鏁村悎锛屼笌鏇村鎶€鏈暣鍚堬紙姣斿缂撳瓨妗嗘灦锛夈€?/p>

Spring鑳藉府鎴戜滑鍋氳繖涔堝浜嬫儏锛屾彁渚涜繖涔堝鍔熻兘鍜屼笌閭d箞澶氫富娴佹妧鏈暣鍚堬紝鑰屼笖鏄府鎴戜滑鍋氫簡寮€鍙戜腑姣旇緝澶寸柤鍜屽洶闅剧殑浜嬫儏锛岄偅鍙兘鏈変汉浼氶棶锛岄毦閬撳彧鏈塖pring杩欎竴涓鏋讹紝娌℃湁鍏朵粬閫夋嫨锛熷綋鐒舵湁锛屾瘮濡侲JB闇€瑕佷緷璧栧簲鐢ㄦ湇鍔″櫒銆佸紑鍙戞晥鐜囦綆銆佸湪寮€鍙戜腑灏忓瀷椤圭洰鏄楦℃嬁鐗涘垁锛岃櫧鐒跺彂灞曞埌鐜板湪EJB姣旇緝濂界敤浜嗭紝浣嗚繕鏄瘮杈冪閲嶈繕闇€瑕佷緷璧栧簲鐢ㄦ湇鍔″櫒绛夈€傞偅涓轰綍闇€瑕佷娇鐢⊿pring锛岃€屼笉鏄叾浠栨鏋跺憿锛熻鎴戜滑鎺ョ潃寰€涓嬬湅銆?/p>

1.1.3聽聽 聽涓轰綍闇€瑕丼pring

涓€ 棣栧厛闃愯堪鍑犱釜姒傚康

1銆佸簲鐢ㄧ▼搴?/strong>锛氭槸鑳藉畬鎴愭垜浠墍闇€瑕佸姛鑳界殑鎴愬搧锛屾瘮濡傝喘鐗╃綉绔欍€丱A绯荤粺銆?/p>

2銆佹鏋?/strong>锛氭槸鑳藉畬鎴愪竴瀹氬姛鑳界殑鍗婃垚鍝侊紝姣斿鎴戜滑鍙互浣跨敤妗嗘灦杩涜璐墿缃戠珯寮€鍙戯紱妗嗘灦鍋氫竴閮ㄥ垎鍔熻兘锛屾垜浠嚜宸卞仛涓€閮ㄥ垎鍔熻兘锛岃繖鏍峰簲鐢ㄧ▼搴忓氨鍒涘缓鍑烘潵浜嗐€傝€屼笖妗嗘灦瑙勫畾浜嗕綘鍦ㄥ紑鍙戝簲鐢ㄧ▼搴忔椂鐨勬暣浣撴灦鏋勶紝鎻愪緵浜嗕竴浜涘熀纭€鍔熻兘锛岃繕瑙勫畾浜嗙被鍜屽璞$殑濡備綍鍒涘缓銆佸浣曞崗浣滅瓑锛屼粠鑰岀畝鍖栨垜浠紑鍙戯紝璁╂垜浠笓娉ㄤ簬涓氬姟閫昏緫寮€鍙戙€?/p>

3銆侀潪渚靛叆寮忚璁?/strong>锛氫粠妗嗘灦瑙掑害鍙互杩欐牱鐞嗚В锛屾棤闇€缁ф壙妗嗘灦鎻愪緵鐨勭被锛岃繖绉嶈璁″氨鍙互鐪嬩綔鏄潪渚靛叆寮忚璁★紝濡傛灉缁ф壙浜嗚繖浜涙鏋剁被锛屽氨鏄镜鍏ヨ璁★紝濡傛灉浠ュ悗鎯虫洿鎹㈡鏋朵箣鍓嶅啓杩囩殑浠g爜鍑犱箮鏃犳硶閲嶇敤锛屽鏋滈潪渚靛叆寮忚璁″垯涔嬪墠鍐欒繃鐨勪唬鐮佷粛鐒跺彲浠ョ户缁娇鐢ㄣ€?/p>

4銆佽交閲忕骇鍙婇噸閲忕骇锛氳交閲忕骇鏄浉瀵逛簬閲嶉噺绾ц€岃█鐨勶紝杞婚噺绾т竴鑸氨鏄潪鍏ヤ镜鎬х殑銆佹墍渚濊禆鐨勪笢瑗块潪甯稿皯銆佽祫婧愬崰鐢ㄩ潪甯稿皯銆侀儴缃茬畝鍗曠瓑绛夛紝鍏跺疄灏辨槸姣旇緝瀹规槗浣跨敤锛岃€岄噸閲忕骇姝eソ鐩稿弽銆?/p>

5銆丳OJO锛歅OJO锛圥lain Old Java Objects锛夌畝鍗曠殑Java瀵硅薄锛屽畠鍙互鍖呭惈涓氬姟閫昏緫鎴栨寔涔呭寲閫昏緫锛屼絾涓嶆媴褰撲换浣曠壒娈婅鑹蹭笖涓嶇户鎵挎垨涓嶅疄鐜颁换浣曞叾瀹僇ava妗嗘灦鐨勭被鎴栨帴鍙c€?/p>

6銆佸鍣?/strong>锛氬湪鏃ュ父鐢熸椿涓鍣ㄥ氨鏄竴绉嶇洓鏀句笢瑗跨殑鍣ㄥ叿锛屼粠绋嬪簭璁捐瑙掑害鐪嬪氨鏄瀵硅薄鐨勭殑瀵硅薄锛屽洜涓哄瓨鍦ㄦ斁鍏ャ€佹嬁鍑虹瓑鎿嶄綔锛屾墍浠ュ鍣ㄨ繕瑕佺鐞嗗璞$殑鐢熷懡鍛ㄦ湡銆?/p>

7銆佹帶鍒跺弽杞細鍗矷nversion of Control锛岀缉鍐欎负IoC锛屾帶鍒跺弽杞繕鏈変竴涓悕瀛楀彨鍋氫緷璧栨敞鍏ワ紙Dependency Injection锛夛紝灏辨槸鐢卞鍣ㄦ帶鍒剁▼搴忎箣闂寸殑鍏崇郴锛岃€岄潪浼犵粺瀹炵幇涓紝鐢辩▼搴忎唬鐮佺洿鎺ユ搷鎺с€?/p>

8銆丅ean锛?/strong>涓€鑸寚瀹瑰櫒绠$悊瀵硅薄锛屽湪Spring涓寚Spring IoC瀹瑰櫒绠$悊瀵硅薄銆?/p>

浜?涓轰粈涔堥渶瑕丼pring鍙奡pring鐨勪紭鐐?/p>

鈼忛潪甯歌交閲忕骇鐨勫鍣?/strong>锛氫互闆嗕腑鐨勩€佽嚜鍔ㄥ寲鐨勬柟寮忚繘琛屽簲鐢ㄧ▼搴忓璞″垱寤哄拰瑁呴厤锛岃礋璐e璞″垱寤哄拰瑁呴厤锛岀鐞嗗璞$敓鍛藉懆鏈燂紝鑳界粍鍚堟垚澶嶆潅鐨勫簲鐢ㄧ▼搴忋€係pring瀹瑰櫒鏄潪渚靛叆寮忕殑锛堜笉闇€瑕佷緷璧栦换浣昐pring鐗瑰畾绫伙級锛岃€屼笖瀹屽叏閲囩敤POJOs杩涜寮€鍙戯紝浣垮簲鐢ㄧ▼搴忔洿瀹规槗娴嬭瘯銆佹洿瀹规槗绠$悊銆傝€屼笖鏍稿績JAR鍖呴潪甯稿皬锛孲pring3.0.5涓嶅埌1M锛岃€屼笖涓嶉渶瑕佷緷璧栦换浣曞簲鐢ㄦ湇鍔″櫒锛屽彲浠ラ儴缃插湪浠讳綍鐜锛圝ava SE鎴朖ava EE锛夈€?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">AOP

锛欰OP鏄疉spect Oriented Programming鐨勭缉鍐欙紝鎰忔€濇槸闈㈠悜鍒囬潰缂栫▼锛屾彁渚涗粠鍙︿竴涓搴︽潵鑰冭檻绋嬪簭缁撴瀯浠ュ畬鍠勯潰鍚戝璞$紪绋嬶紙鐩稿浜嶰OP锛夛紝鍗冲彲浠ラ€氳繃鍦ㄧ紪璇戞湡闂淬€佽杞芥湡闂存垨杩愯鏈熼棿瀹炵幇鍦ㄤ笉淇敼婧愪唬鐮佺殑鎯呭喌涓嬬粰绋嬪簭鍔ㄦ€佹坊鍔犲姛鑳界殑涓€绉嶆妧鏈€傞€氫織鐐硅灏辨槸鎶婂彲閲嶇敤鐨勫姛鑳芥彁鍙栧嚭鏉ワ紝鐒跺悗灏嗚繖浜涢€氱敤鍔熻兘鍦ㄥ悎閫傜殑鏃跺€欑粐鍏ュ埌搴旂敤绋嬪簭涓紱姣斿瀹夊叏锛屾棩璁拌褰曪紝杩欎簺閮芥槸閫氱敤鐨勫姛鑳斤紝鎴戜滑鍙互鎶婂畠浠彁鍙栧嚭鏉ワ紝鐒跺悗鍦ㄧ▼搴忔墽琛岀殑鍚堥€傚湴鏂圭粐鍏ヨ繖浜涗唬鐮佸苟鎵ц瀹冧滑锛屼粠鑰屽畬鎴愰渶瑕佺殑鍔熻兘骞跺鐢ㄤ簡杩欎簺鍔熻兘銆?/p>

鈼徛?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">绠€鍗曠殑鏁版嵁搴撲簨鍔$鐞?/strong>锛氬湪浣跨敤鏁版嵁搴撶殑搴旂敤绋嬪簭褰撲腑锛岃嚜宸辩鐞嗘暟鎹簱浜嬪姟鏄竴椤瑰緢璁╀汉澶寸柤鐨勪簨锛岃€屼笖寰堝鏄撳嚭鐜伴敊璇紝Spring鏀寔鍙彃鍏ョ殑浜嬪姟绠$悊鏀寔锛岃€屼笖鏃犻渶JEE鐜鏀寔锛岄€氳繃Spring绠$悊浜嬪姟鍙互鎶婃垜浠粠浜嬪姟绠$悊涓В鏀惧嚭鏉ユ潵涓撴敞涓氬姟閫昏緫銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">JDBC

鎶借薄鍙奜RM妗嗘灦鏀寔锛歋pring浣縅DBC鏇村姞瀹规槗浣跨敤锛涙彁渚汥AO锛堟暟鎹闂璞★級鏀寔锛岄潪甯告柟渚块泦鎴愮涓夋柟ORM妗嗘灦锛屾瘮濡侶ibernate绛夛紱骞朵笖瀹屽叏鏀寔Spring浜嬪姟鍜屼娇鐢⊿pring鎻愪緵鐨勪竴鑷寸殑寮傚父浣撶郴銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">鐏垫椿鐨刉eb

灞傛敮鎸?/strong>锛歋pring鏈韩鎻愪緵涓€濂楅潪甯稿己澶х殑MVC妗嗘灦锛岃€屼笖鍙互闈炲父瀹规槗鐨勪笌绗笁鏂筂VC妗嗘灦闆嗘垚锛屾瘮濡係truts绛夈€?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">绠€鍖栧悇绉嶆妧鏈泦鎴?/strong>锛氭彁渚涘Java Mail銆佷换鍔¤皟搴︺€丣MX銆丣MS銆丣NDI銆丒JB銆佸姩鎬佽瑷€銆佽繙绋嬭闂€乄eb Service绛夌殑闆嗘垚銆?/p>

Spring鑳藉府鍔╂垜浠畝鍖栧簲鐢ㄧ▼搴忓紑鍙戯紝甯姪鎴戜滑鍒涘缓鍜岀粍瑁呭璞★紝涓烘垜浠鐞嗕簨鍔★紝绠€鍗曠殑MVC妗嗘灦锛屽彲浠ユ妸Spring鐪嬩綔鏄竴涓秴绾х矘鍚堝钩鍙帮紝鑳芥妸寰堝鎶€鏈暣鍚堝湪涓€璧凤紝褰㈡垚涓€涓暣浣擄紝浣跨郴缁熺粨鏋勬洿浼樿壇銆佹€ц兘鏇村嚭浼楋紝浠庤€屽姞閫熸垜浠▼搴忓紑鍙戯紝鏈夊涓婁紭鐐癸紝鎴戜滑娌℃湁鐞嗙敱涓嶈€冭檻浣跨敤瀹冦€?/p>

1.1.4聽 濡備綍瀛﹀ソSpring

瑕佸濂絊pring锛岄鍏堣鏄庣‘Spring鏄釜浠€涔堜笢瑗匡紝鑳藉府鎴戜滑鍋氫簺浠€涔堜簨鎯咃紝鐭ラ亾浜嗚繖浜涚劧鍚庡仛涓畝鍗曠殑渚嬪瓙锛岃繖鏍峰氨鍩烘湰鐭ラ亾鎬庝箞浣跨敤Spring浜嗐€係pring鏍稿績鏄疘oC瀹瑰櫒锛屾墍浠ヤ竴瀹氳閫忓交鐞嗚В浠€涔堟槸IoC瀹瑰櫒锛屼互鍙婂浣曢厤缃強浣跨敤瀹瑰櫒锛屽叾浠栨墍鏈夋妧鏈兘鏄熀浜庡鍣ㄥ疄鐜扮殑锛涚悊瑙eソIoC鍚庯紝鎺ヤ笅鏉ユ槸闈㈠悜鍒囬潰缂栫▼锛岄鍏堣繕鏄槑纭蹇碉紝鍩烘湰閰嶇疆锛屾渶鍚庢槸瀹炵幇鍘熺悊锛屾帴涓嬫潵灏辨槸鏁版嵁搴撲簨鍔$鐞嗭紝鍏跺疄Spring绠$悊浜嬪姟鏄€氳繃闈㈠悜鍒囬潰缂栫▼瀹炵幇鐨勶紝鎵€浠ュ熀纭€寰堥噸瑕侊紝IoC瀹瑰櫒鍜岄潰鍚戝垏闈㈢紪绋嬫悶瀹氬悗锛屽叾浣欓兘鏄熀浜庤繖淇╀笢瑗跨殑瀹炵幇锛屽璧锋潵灏辨洿鍔犺交鏉句簡銆傝瀛﹀ソSpring涓嶈兘鎬ワ紝涓€瀹氳鎶婂熀纭€鎵撶墷锛屽熀纭€鐗㈠浐浜嗭紝杩欏氨鏄(鍒€涓嶈鐮嶆煷宸ャ€?/p>

1.2聽 Spring鍩虹

1.2.1聽 Spring鏋舵瀯鍥?/h3>

銆愮涓€绔犮€?Spring姒傝堪 鈥斺€旇窡鎴戝Spring3 .零

鍥?1-1 Spring鏋舵瀯鍥韭犅犅?/p>

鏍稿績瀹瑰櫒锛?/strong>鍖呮嫭Core銆丅eans銆丆ontext銆丒L妯″潡銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">Core

妯″潡锛?/strong>灏佽浜嗘鏋朵緷璧栫殑鏈€搴曞眰閮ㄥ垎锛屽寘鎷祫婧愯闂€佺被鍨嬭浆鎹㈠強涓€浜涘父鐢ㄥ伐鍏风被銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">Beans

妯″潡锛?/strong>鎻愪緵浜嗘鏋剁殑鍩虹閮ㄥ垎锛屽寘鎷弽杞帶鍒跺拰渚濊禆娉ㄥ叆銆傚叾涓瑽ean Factory鏄鍣ㄦ牳蹇冿紝鏈川鏄€滃伐鍘傝璁℃ā寮忊€濈殑瀹炵幇锛岃€屼笖鏃犻渶缂栫▼瀹炵幇鈥滃崟渚嬭璁℃ā寮忊€濓紝鍗曚緥瀹屽叏鐢卞鍣ㄦ帶鍒讹紝鑰屼笖鎻愬€¢潰鍚戞帴鍙g紪绋嬶紝鑰岄潪闈㈠悜瀹炵幇缂栫▼锛涙墍鏈夊簲鐢ㄧ▼搴忓璞″強瀵硅薄闂村叧绯荤敱妗嗘灦绠$悊锛屼粠鑰岀湡姝f妸浣犱粠绋嬪簭閫昏緫涓妸缁存姢瀵硅薄涔嬮棿鐨勪緷璧栧叧绯绘彁鍙栧嚭鏉ワ紝鎵€鏈夎繖浜涗緷璧栧叧绯婚兘鐢盉eanFactory鏉ョ淮鎶ゃ€?/p>

鈼廋ontext妯″潡锛?/strong>浠ore鍜孊eans涓哄熀纭€锛岄泦鎴怋eans妯″潡鍔熻兘骞舵坊鍔犺祫婧愮粦瀹氥€佹暟鎹獙璇併€佸浗闄呭寲銆?/strong>Java EE鏀寔銆佸鍣ㄧ敓鍛藉懆鏈熴€佷簨浠朵紶鎾瓑锛涙牳蹇冩帴鍙f槸ApplicationContext銆?/p>

鈼廍L妯″潡锛?/strong>鎻愪緵寮哄ぇ鐨勮〃杈惧紡璇█鏀寔锛屾敮鎸佽闂拰淇敼灞炴€у€硷紝鏂规硶璋冪敤锛屾敮鎸佽闂強淇敼鏁扮粍銆佸鍣ㄥ拰绱㈠紩鍣紝鍛藉悕鍙橀噺锛屾敮鎸佺畻鏁板拰閫昏緫杩愮畻锛屾敮鎸佷粠Spring 瀹瑰櫒鑾峰彇Bean锛屽畠涔熸敮鎸佸垪琛ㄦ姇褰便€侀€夋嫨鍜屼竴鑸殑鍒楄〃鑱氬悎绛夈€?/p>

AOP銆丄spects妯″潡锛?/strong>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">AOP

妯″潡锛?/strong>Spring AOP妯″潡鎻愪緵浜嗙鍚埪?em style="padding: 0px; margin: 0px; line-height: 1.5em;">AOP Alliance瑙勮寖鐨勯潰鍚戞柟闈㈢殑缂栫▼锛坅spect-oriented programming锛夊疄鐜帮紝鎻愪緵姣斿鏃ュ織璁板綍銆佹潈闄愭帶鍒躲€佹€ц兘缁熻绛夐€氱敤鍔熻兘鍜屼笟鍔¢€昏緫鍒嗙鐨勬妧鏈紝骞朵笖鑳藉姩鎬佺殑鎶婅繖浜涘姛鑳芥坊鍔犲埌闇€瑕佺殑浠g爜涓紱杩欐牱鍚勪笓鍏惰亴锛岄檷浣庝笟鍔¢€昏緫鍜岄€氱敤鍔熻兘鐨勮€﹀悎銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">Aspects

妯″潡锛?/strong>鎻愪緵浜嗗AspectJ鐨勯泦鎴愶紝AspectJ鎻愪緵浜嗘瘮Spring ASP鏇村己澶х殑鍔熻兘銆?/p>

鏁版嵁璁块棶/闆嗘垚妯″潡锛?/strong>璇ユā鍧楀寘鎷簡JDBC銆丱RM銆丱XM銆丣MS鍜屼簨鍔$鐞嗐€?/p>

鈼忎簨鍔℃ā鍧楋細璇ユā鍧楃敤浜嶴pring绠$悊浜嬪姟锛屽彧瑕佹槸Spring绠$悊瀵硅薄閮借兘寰楀埌Spring绠$悊浜嬪姟鐨勫ソ澶勶紝鏃犻渶鍦ㄤ唬鐮佷腑杩涜浜嬪姟鎺у埗浜嗭紝鑰屼笖鏀寔缂栫▼鍜屽0鏄庢€х殑浜嬬墿绠$悊銆?/p>

鈼廕DBC妯″潡锛氭彁渚涗簡涓€涓狫BDC鐨勬牱渚嬫ā鏉匡紝浣跨敤杩欎簺妯℃澘鑳芥秷闄や紶缁熷啑闀跨殑JDBC缂栫爜杩樻湁蹇呴』鐨勪簨鍔℃帶鍒讹紝鑰屼笖鑳戒韩鍙楀埌Spring绠$悊浜嬪姟鐨勫ソ澶勩€?/p>

鈼廜RM妯″潡锛氭彁渚涗笌娴佽鐨勨€滃璞?鍏崇郴鈥濇槧灏勬鏋剁殑鏃犵紳闆嗘垚锛屽寘鎷琀ibernate銆丣PA銆両batiss绛夈€傝€屼笖鍙互浣跨敤Spring浜嬪姟绠$悊锛屾棤闇€棰濆鎺у埗浜嬪姟銆?/p>

鈼廜XM妯″潡锛氭彁渚涗簡涓€涓Object/XML鏄犲皠瀹炵幇锛屽皢java瀵硅薄鏄犲皠鎴怷ML鏁版嵁锛屾垨鑰呭皢XML鏁版嵁鏄犲皠鎴恓ava瀵硅薄锛孫bject/XML鏄犲皠瀹炵幇鍖呮嫭JAXB銆丆astor銆乆MLBeans鍜孹Stream銆?/p>

鈼廕MS妯″潡锛氱敤浜嶫MS(Java Messaging Service)锛屾彁渚涗竴濂?鈥滄秷鎭敓浜ц€呫€佹秷鎭秷璐硅€呪€濇ā鏉跨敤浜庢洿鍔犵畝鍗曠殑浣跨敤JMS锛孞MS鐢ㄤ簬鐢ㄤ簬鍦ㄤ袱涓簲鐢ㄧ▼搴忎箣闂达紝鎴栧垎甯冨紡绯荤粺涓彂閫佹秷鎭紝杩涜寮傛閫氫俊銆?/p>

鈼廤eb/Remoting妯″潡锛?/strong>Web/Remoting妯″潡鍖呭惈浜哤eb銆乄eb-Servlet銆乄eb-Struts銆乄eb-Porlet妯″潡銆?/p>

鈼廤eb妯″潡锛氭彁渚涗簡鍩虹鐨剋eb鍔熻兘銆備緥濡傚鏂囦欢涓婁紶銆侀泦鎴怚oC瀹瑰櫒銆佽繙绋嬭繃绋嬭闂紙RMI銆丠essian銆丅urlap锛変互鍙奧eb Service鏀寔锛屽苟鎻愪緵涓€涓猂estTemplate绫绘潵鎻愪緵鏂逛究鐨凴estful services璁块棶銆?/p>

鈼廤eb-Servlet妯″潡锛氭彁渚涗簡涓€涓猄pring MVC Web妗嗘灦瀹炵幇銆係pring MVC妗嗘灦鎻愪緵浜嗗熀浜庢敞瑙g殑璇锋眰璧勬簮娉ㄥ叆銆佹洿绠€鍗曠殑鏁版嵁缁戝畾銆佹暟鎹獙璇佺瓑鍙婁竴濂楅潪甯告槗鐢ㄧ殑JSP鏍囩锛屽畬鍏ㄦ棤缂濅笌Spring鍏朵粬鎶€鏈崗浣溿€?/p>

鈼廤eb-Struts妯″潡锛氭彁渚涗簡涓嶴truts鏃犵紳闆嗘垚锛孲truts1.x 鍜孲truts2.x閮芥敮鎸?/p>

Test妯″潡锛?/strong>聽Spring鏀寔Junit鍜孴estNG娴嬭瘯妗嗘灦锛岃€屼笖杩橀澶栨彁渚涗簡涓€浜涘熀浜嶴pring鐨勬祴璇曞姛鑳斤紝姣斿鍦ㄦ祴璇昗eb妗嗘灦鏃讹紝妯℃嫙Http璇锋眰鐨勫姛鑳姐€?/p>

1.2.2聽聽 聽聽鍏稿瀷搴旂敤鍦烘櫙

聽 Spring鍙互搴旂敤鍒拌澶氬満鏅紝浠庢渶绠€鍗曠殑鏍囧噯Java SE绋嬪簭鍒颁紒涓氱骇搴旂敤绋嬪簭閮借兘浣跨敤Spring鏉ユ瀯寤恒€備互涓嬩粙缁嶅嚑涓瘮杈冩祦琛岀殑搴旂敤鍦烘櫙锛?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">鍏稿瀷Web

搴旂敤绋嬪簭搴旂敤鍦烘櫙锛?/strong>

銆愮涓€绔犮€?Spring姒傝堪 鈥斺€旇窡鎴戝Spring3 .零

鍥?-2 web搴旂敤绋嬪簭搴旂敤鍦烘櫙

鍦╓eb搴旂敤绋嬪簭搴旂敤鍦烘櫙涓紝鍏稿瀷鐨勪笁灞傛灦鏋勶細鏁版嵁妯″瀷灞傚疄鐜板煙瀵硅薄锛涙暟鎹闂眰瀹炵幇鏁版嵁璁块棶锛涢€昏緫灞傚疄鐜颁笟鍔¢€昏緫锛泈eb灞傛彁渚涢〉闈㈠睍绀猴紱鎵€鏈夎繖浜涘眰缁勪欢閮界敱Spring杩涜绠$悊锛屼韩鍙楀埌Spring浜嬪姟绠$悊銆丄OP绛夊ソ澶勶紝鑰屼笖璇锋眰鍞竴鍏ュ彛灏辨槸DispachterServlet锛屽畠閫氳繃鎶婅姹傛槧灏勪负鐩稿簲web灞傜粍浠舵潵瀹炵幇鐩稿簲璇锋眰鍔熻兘銆?/p>

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">杩滅▼璁块棶搴旂敤鍦烘櫙锛?/strong>

Spring鑳介潪甯告柟渚跨殑鎻愪緵鏆撮湶RMI鏈嶅姟锛岃繙绋嬭闂湇鍔″Hessian銆丅urlap绛夛紝瀹炵幇闈炲父绠€鍗曞彧闇€閫氳繃鍦⊿pring涓厤缃浉搴旂殑鍦板潃鍙婇渶瑕佹毚闇茬殑鏈嶅姟鍗冲彲杞绘澗瀹炵幇锛屽悗杈逛細鏈変粙缁嶏紱

鈼?strong style="padding: 0px; margin: 0px; line-height: 1.5em;">EJB

搴旂敤鍦烘櫙锛?/strong>

Spring涔熷彲浠ヤ笌EJB杞绘澗闆嗘垚锛屽悗杈逛細璇︾粏浠嬬粛銆?/p>