锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
java涓綋鍓嶆棩鏈熺殑鑾峰彇鏂規硶
鏃ф柟娉曪紙宸蹭笉甯哥敤錛夛細
int year = 0;
int month = 0;
int day = 0;
java.util.Date now = new java.util.Date();
year = now.getYear() + 1900;
month = now.getMonth() + 1;
day = now.getDate();
鏂版柟娉曪細
SimpleDateFormat formatter = new SimpleDateFormat(鈥測yyy-mm-dd鈥?;
Calendar cal_today = Calendar.getInstance();
int m_day = cal_today.get(cal_today.DAY_OF_MONTH);
int m_month = cal_today.get(cal_today.MONTH) + 1;
int m_hour = cal_today.get(cal_today.HOUR_OF_DAY);
int m_minute = cal_today.get(cal_today.MINUTE);
String d = formatter.format(cal_today.getTime());
鎴戦噰鐢ㄥ墠涓縐嶆柟娉曞疄鐜頒簡鎸夋棩鏈熺敓鎴愭枃浠跺す.
2
jsp浼犵粰mysql褰撳墠緋葷粺鏃墮棿鐨勬柟娉?/P>
insert into youDB(date) values(NOW())
涓嶈繃榪欐牱鍙兘鑾峰緱褰撳墠鏃ユ湡
3
鍒ゆ柇瑕佸緩绔嬬殑鏂囦歡澶規槸鍚﹀瓨鍦?濡傛灉涓嶅垯鏂板緩绔嬩竴涓枃浠跺す
int year,mm,dd;
String month,day;
Date d1=new Date();
year=d1.getYear()+1900;
mm=d1.getMonth()+1;
if (mm<10) month="0"+mm;
else month=""+mm;
dd=d1.getDate();
if (dd<10) day="0"+dd;
else day=""+dd;
String filepath="d:\\upload"+"\\"+year+month+day+"\\";
if(!new File(filepath).isDirectory())
new File(filepath).mkdirs();
鍘誨勾鎴戞瘯涓氳璁℃椂鍊欏仛鐨勪竴涓」鐩槸姣曚笟璁捐綆$悊緋葷粺銆傚綋鏃惰佸笀緇欐垜浠殑瑕佹眰鏄敤Jsp 鍜?Javabean鏉ュ疄鐜般傛垜涓昏璐熻矗欏圭洰寤烘ā鍜孞avabean閮ㄥ垎錛屽悗鏉ヨ礋璐f暟鎹簱鐨勫悓瀛﹁SARS鍥板湪瀹朵笉鑳借繑鏍★紝鎵浠ユ暟鎹簱閮ㄥ垎涔熺敱鎴戞潵瀹屾垚浜嗐傚綋鏃跺java鐨勭煡璇嗘槸闈炲父璐箯鐨勶紝鍙湁綆鍗曠殑璇硶鍩虹錛岃繛jsp銆?javabean閮芥槸絎竴嬈″惉鍒拌繃銆備笉鐭ラ亾浠庡摢閲屽紑濮嬶紝浜庢槸灝辯爺絀惰佸笀緇欑殑涓涓潪甯哥畝鍗曠殑婕旂ず欏圭洰錛岄鍏堣寰梛avabean鏄釜姣旇緝綆鍗曠殑涓滆タ錛屼簬鏄氨鍏堝紑濮嬪垎鏋愮敤鎴烽渶姹傘?/P>
闇姹傛庝箞鏉ユ弿榪板憿錛熺敱浜庡鏍℃暀鑲茬殑灞闄愶紝鍔犱笂鑷繁鐮旂┒浜嗗緢闀挎椂闂撮珮鏁幫紝鏀挎不錛岃嫳璇紙騫蹭粈涔堢敤澶у閮芥槑鐧藉惂錛夛紝閫犳垚浜嗙煡璇嗙殑涓ラ噸鍖箯銆傛垜灝變互鍙傚姞姣曚笟璁捐浜哄憳涓轟腑蹇冿紝寤虹珛浠栦滑鐨勯渶姹傚垪琛ㄣ備絾鏄繖鏍風殑闇姹傛弿榪版槸闈炲父鐗囬潰鐨勶紝鍑犱箮閮芥槸闈欐佺殑闇姹傦紝鑰屼笖寰堥毦璁捐鍑犱釜鐢ㄦ埛鐨勪氦浜掕繃紼嬶紝鍜屾煇浜涚姸鎬佺殑鏀瑰彉銆傝屼笖榪欑闇姹傛槸鍚︽湁鐪熸絎﹀悎闇瑕佹槸涓棶棰橈紝鎵浠ユ垜绔嬪埢鍜屽悓瀛︿竴璧瘋璁eb鐣岄潰錛岀洰鐨勫緢綆鍗曪紝鍥犱負鐢ㄦ埛鐨勯渶姹傞兘鏄氳繃鐣岄潰鏉ュ疄鐜扮殑錛屽鐣岄潰鐨勮璁¤兘娑電洊鏈緇堟彁浜ょ敤鎴風殑鍔熻兘錛岃屼笖榪樿兘鍙戞帢寰堝闈炵敤鎴風殑闇姹傘傝繖鏍鋒垜鍦ㄥ疄鐜拌繖浜涘姛鑳界殑鏃跺欎細鏈夋暟銆傚湪涓騫村悗褰撴垜浠旂粏鐪嬭繃鐢ㄤ緥鍒嗘瀽錛寀ml鍚庢劅瑙夋槸濡傝幏鑷沖疂銆傚績澶寸殑緇撳叏閮ㄦ墦寮銆?/P>
寤烘ā璇ユ庝箞寤猴紵褰撴椂鐪熸槸浠涔堟蹇甸兘娌℃湁錛岃櫧鐒剁煡閬搖ml錛屼絾鏄粎浠呯煡閬撶毊姣涖備簬鏄垜灝卞緢綆鍗曠殑浠庡璞$殑瑙掑害鑰冭檻闂錛岄鍏堟壘姣曚笟璁捐綆$悊緋葷粺涓秹鍙婄殑浜哄憳錛岃繖涓槸寰堟槑鏄炬壘鍑烘潵鐨勶紝娑夊強鍒板鐢燂紝鏁欏笀錛岀鐞嗗憳錛岃繘涓姝ユ彁鍙栧嚭欏圭洰瀵硅薄錛屽悇涓漢鍛樹箣闂撮氳鐨勬秷鎭璞★紝姣曚笟璁捐鏂囨。瀵硅薄錛岀瓑絳夈傛帴涓嬫潵璁捐鏁版嵁搴撹〃錛岀敱浜庡鏍℃暀鏁版嵁搴撶殑鏃跺欏彧鏈夎榪頒簡ER鍥懼埌鍏崇郴妯″紡鐨勮漿鍖栵紝鑰屾牴鏈病鏈夎ODL鍒板叧緋繪ā寮忕殑杞寲錛堢幇鍦ㄧ湅鏉ワ紝ODL搴旇鏇村ソ錛屽鐞嗚ВO/R Mapping鏈夋洿澶氱殑甯姪銆傦級浜庢槸灝辯敾ER鍥撅紝寤虹珛鍚勭琛紝璁懼畾涓婚敭錛屽閿紝絳夌瓑銆?/P>
鎴戦亣鍒扮殑棣栬闂灝辨槸瀛︾敓錛屾暀甯堬紝綆$悊鍛樿鎬庝箞鍔烇紝姣忎竴涓璞″緩涓涓〃錛屼技涔庝篃娌℃湁浠涔堥棶棰樸備絾鏄湪寤虹珛娑堟伅瀵硅薄鐨勬椂鍊欏氨鏈夐棶棰樹簡錛屽洜涓烘秷鎭槸瑕佸湪瀛︾敓錛屾暀甯堬紝綆$悊鍛樹換鎰忎袱鑰呴兘鑳戒紶閫佺殑錛屾垜寤烘秷鎭〃鐨勬椂鍊欐槸榪欐牱璁捐鐨勶細涓涓秷鎭殑鍐呭錛屾秷鎭殑鍙戦佷漢錛屾秷鎭殑鎺ユ敹浜猴紙娑堟伅鍐呭鍜屽彂閫佷漢涓涓〃錛屼負瑙e喅鍐椾綑鎺ユ敹浜哄崟鐙竴涓〃錛夛紝榪欐牱榪欎釜娑堟伅灝辨湁寰堝ぇ鐨勭伒媧葷▼搴︿簡錛屾秷鎭彂閫佷漢鍙互鏄笁縐嶈鑹查棿鐨勯殢渚夸竴縐嶏紝鏇磋繘涓姝ワ紝榪欐牱鐨勬秷鎭彲浠ユ槸緋葷粺鐢熸垚鐨勬秷鎭紝鑰屼笖鎺ユ敹鑰呭彲浠ユ槸闅忎究鍝瑙掕壊銆備絾闅忎箣甯︽潵鐨勯棶棰樻槸錛氭秷鎭彂閫佷漢銆佹帴鏀惰呰鍘誨弬鐓ц皝鍛?鏄劇劧濉竴涓彂閫佽呫佹帴鏀惰呯殑id鏄笉澶熺殑錛屽繀欏昏繛鍙戦佽呯殑瑙掕壊涔熷~涓娿傜浜岀鏂規硶錛屾瘡涓鑹叉湁涓涓敹鍒版秷鎭殑鍒楄〃錛岃瀹冨幓鍙傜収鍗曚竴鐨勬秷鎭〃id錛岃繖鏍蜂篃鑳借В鍐抽棶棰樸傜涓夌鏂規硶錛屾妸瀛︾敓錛屾暀甯堬紝綆$悊鍛樺悎騫舵垚涓涓敤鎴瘋〃錛岄偅涔堟秷鎭彂閫佷漢錛屾帴鏀朵漢鍙綆鍗曠殑鍙傜収涓涓氱敤鐨勭敤鎴穒d浜嗐傝繖縐嶅悎騫跺瓙綾葷殑鏂規硶浼氶犳垚鏁欏笀錛岀鐞嗗憳鐨勮鏈変簺null鍊鹼紝浣嗘槸鑰冭檻鍒版暀甯堝拰綆$悊鍛樼殑鏁扮洰榪滆繙灝忎簬瀛︾敓鐨勬暟鐩紝鎵浠ヨ繖鏍風殑鍐椾綑鏄拷鐣ヤ笉璁$殑銆傛渶鍚庢垜榪樻槸閫夋嫨浜嗘渶鍚庝竴縐嶆柟娉曘備笉榪囨垜榪樻槸瑙夌殑鏄璞℃ā鍨嬪悜鍏崇郴妯″瀷鐨勪竴縐嶅Ε鍗忋?/P>
鎺ョ潃鎴戠潃鎵嬭璁avabean錛岃闂暟鎹簱鐢ㄧ殑鏄崟綰殑JDBC銆傚洜涓烘垜瀵瑰墠鍙扮晫闈㈣璁塊棶涓涓璞$殑鍝簺灞炴ф槸涓嶄簡瑙g殑錛屼簨瀹炰笂涔熶笉璇ヤ簡瑙c傛墍浠ユ垜鍙兘浠庢暟鎹簱鍙栧嚭涓涓畬鏁寸殑瀵硅薄錛岃浠栨潵鍐沖畾絀剁珶瑕佽闂摢浜涘睘鎬с傝屼笖瀵瑰璞$殑淇敼涔熸槸榪欐牱錛屽墠鍙頒慨鏀瑰ソ鏂扮殑瀵硅薄鐨勫睘鎬э紝鎴戞潵榪涜鏇存暟鎹簱鐨勫悓姝ャ備簬鏄垜鐨刯avabean灝卞嚭鐜頒簡榪欐牱鐨勬柟娉曪細load()銆?store()銆?update()銆乨elete()榪欐牱鐨勫璞″拰鏁版嵁搴撹〃鍚屾鐨勬柟娉曘傝繖鍦ㄤ竴騫村悗鐨勪粖澶╃湅鏉ワ紝瀹為檯涓婃垜宸茬粡鑷繁鍋氫簡涓涓狾/R Mapping鐨勫伐浣滀簡銆傚綋鏃惰嚜宸卞仛榪欐牱鐨凮/R Mapping鏄浉褰撶棝鑻︾殑浜嬫儏錛岃屼笖鐢ㄧ殑鏂規硶涔熸槸鏈綺楁祬鐨勶紝灝辨槸鏁翠釜瀵硅薄鏇存暟鎹簱鍚屾錛屽嵆浣挎病鏈変慨鏀圭殑灞炴т篃鍚屾錛屾墍浠ヨ鍚屾鐨勮瘽錛屽繀欏昏鍏堟妸瀵硅薄浠庢暟鎹簱鍙栧嚭鏉ワ紝淇敼鍚庡啀鍐欏洖銆傝屼笖瑕佹眰鎵鏈夊睘鎬у繀欏繪槸nullable鐨刵on-primitive綾誨瀷銆傜浜屼釜闂錛屽琛ㄤ腑鐨勫閿庝箞鍙嶅簲鍒癰ean涓紵姣斿姣忎釜瀛︾敓鏈変竴涓緟瀵兼暀甯堬紝鍦ㄦ暟鎹簱涓緢鏄庢樉瀛︾敓琛ㄩ渶瑕佷竴涓閿弬鐓ф暀甯坕d錛屼絾鏄湪StudentBean涓暀甯堝睘鎬ф槸鍐橳eacher瀵硅薄鍛紝榪樻槸Teacher id鍊煎憿錛屾寜鐓ч潰鍚戝璞★紝寰堟槑鏄懼簲璇eacher瀵硅薄錛屼絾鏄垜灝辮寰楄繖鏄釜澶氫箞heavy鐨勪簨鎯呭憖錛佸啀鎯蟲兂鏁欏笀鎯呭喌錛屼竴涓暀甯堟湁涓涓狢ollection鐨凷tudent瀵硅薄鏄涔堚滈噸鈥濓紒鎰忓懗鐫load涓涓暀甯堣load鎵鏈夌殑students銆備簬鏄垜閲囩敤鐨勬柟娉曟槸錛氳繕鏄敤瀵硅薄錛屾瘮濡倀eacher 鐨勫鐢熷睘鎬э紝榪樻槸涓涓猚ollection Student瀵硅薄錛屽悓鏃舵彁渚涗簡涓涓猯oadStudents()鐨勬柟娉曪紝load teacher瀵硅薄鐨勬椂鍊欏茍涓峫oad 瀛︾敓灞炴э紝鍙湁bean鐨勭敤鎴鋒樉寮忚皟鐢╨oadStudents()鐨勬椂鍊欐墠浼氬姞杞戒竴緇剆tudent瀵硅薄錛岃繖鍦ㄧ幇鍦ㄧ湅鏉ヤ技涔庢垜鑷涓嶈嚜瑙夌殑瀹炵幇浜唋azy loading錛?/P>
鐜板湪瀹¤褰撴椂緙栧啓鐨刯avabean錛岀姱鐨勬渶澶ф渶澶х殑閿欒灝辨槸鎶奷ata access object鍜宐usiness workflow娣峰湪涓璧蜂簡銆傛瘮濡傛妸鏁欏笀鎵鏈夎璋冪敤鐨勫姛鑳介兘鏀懼湪鏁欏笀瀵硅薄閲岄潰錛岃屾湁浜涘姛鑳芥湁鏃舵槸瑕佹秹鍙婂嚑涓猙ean鐨勩傜幇鍦ㄧ湅浜嗙畝鐩存槸鎯ㄤ笉蹇嶇澒鐨勮璁★紝铏界劧褰撴椂涔熷洶鎯戣繃錛屼絾鏄嵈娌℃湁鍔ㄥ姩鑴戠瓔鏉ヨВ鍐籌紝鎴戠幇鍦ㄧ湅浜唖ession bean 鐨勬濊礬鏃訛紝瑙夊緱鏄偅涔堢殑鑸掔晠銆佽嚜鐒躲?/P>
褰撴椂鍥版儜鐨勮繕鏈夊叧浜巎sp鐨勫鐞嗭紝jsp鍙槸璐熻矗鏄劇ず鐨勶紝浣嗘槸涓轟粈涔堜竴涓猨sp鎻愪氦鐨勬暟鎹緇欏彟澶栦竴涓猨sp鍘誨鐞嗗憿錛熻繖鏄緢涓嶈垝鐣呯殑鍋氭硶錛屼簬鏄湁浜嗘渶鍒濈殑servlet鍋氭帶鍒跺櫒鐨勬兂娉曪紝浣嗘槸褰撴椂欏句笉浜嗙爺絀墮偅涔堝錛屼篃娌℃湁鏈緇堝疄鐜幫紝姣曠珶鍓嶅彴涓嶆槸鎴戣礋璐g殑銆傚綋鎴戠幇鍦ㄧ煡閬撲簡Structs錛孧VC Model2鐨勬椂鍊欙紝鎴戜互鍓嶇殑鍥版儜閮介殢涔嬭В鍐熾傚張涓嬈℃劅瑙夐潪甯歌垝鐣呫?/P>
浠ヤ笂鏄垜涓涓柊鎵嬬殑絎竴涓」鐩殑涓浜涙儏鍐碉紝鏄湪闈炲父闂鐨勭幆澧冮噷闈㈠仛鐨勶紝涓婄綉閮芥槸鐢佃瘽鍗℃嫧鍙鳳紝鏍規湰娌℃湁鎺ヨЕ鍒頒富嫻佹妧鏈紝浣嗘槸姝f槸榪欑鐜涓嬬Н绱殑鏃犳暟鍥版儜錛屼嬌鎴戦亣鍒癊JB銆丠ibernate銆丼tructs鐨勬椂鍊欏楗敇闇詫紝榪呴熺殑鍚告敹浜嗕粬浠殑钀ュ吇銆傚惁鍒欐垜鎯沖涔犺繖浜涙妧鏈棤鐤戞槸寰堣楁椂闂寸殑錛屽洜涓烘牴鏈病鏈夋洿榪欑鎶鏈駭鐢熷叡楦o紝涓嶇煡閬撲粬浠悶閭d箞澶氭妗嗙┒绔熸兂騫蹭粈涔堬紝鑰屾垜浜х敓浜嗕竴縐嶅叡楦o紝浠栦滑榪欎簺妗嗘錛屾鏄紑鎴戝績澶寸枒鎯戠殑閿併?/P>
鍙堝洖鍒板紑澶村瓟瀛愮殑璇濓紝浜嬪疄涓婃垜鍦ㄥ仛欏圭洰涓紝涓鐩撮兘鏄寜鑷繁鐨勬濊冩柟寮忓湪鈥滄濃濊屾病鏈夊幓鈥滃鈥濓紝鎵浠ュ父甯告劅鍒扮柌鍊﹁屾棤鎵寰楋紝鍗斥滄畣鈥濄備絾鏄鏋滀笉瀹為檯鑷繁鍘誨姩鎵嬪仛錛岃屽厜鍏夊j2ee錛屽繀鐒朵細寰堣糠鎯戯紝鍗斥滅綌鈥濄傛垜鎰熻鍏堟湁鍥版儜鍐嶆湁瑙e喅錛屾槸鎺屾彙鎶鏈殑鍗佸垎鏈夋晥鐨勮屼笖宸╁浐鐨勬柟娉曪紝鑰屼笖寰堟湁鍒涢犳э紝鏄睘浜庡綊綰崇殑鎬濊冩柟寮忋傛墍浠ョ鍒伴棶棰橈紝棣栧厛闇瑕佹兂鎯蟲寜甯哥悊璇ユ庝箞鍘昏В鍐籌紝鍐嶅幓瀵繪壘鍒漢鎬庝箞瑙e喅鐨勶紝榪欐牱鑷繁鎻愰珮浼氬崄鍒嗚繀閫熴?/P>
鐜板湪鎴戞鍦ㄧ敤EJB銆丼tructs鏉ラ噸鍐欓偅涓」鐩傝櫧鐒舵垜瀵規暣涓渶姹傚凡緇忕浉褰撴竻妤氾紝姣曠珶鏈変簡絎竴涓」鐩綔涓哄師鍨嬶紝浣嗘槸鎴戣繕鏄瘯鍥句嬌鐢ㄦ瘮杈冭鑼冪殑鏂規硶鏉ヨ璁°傞鍏堝垎鏋愪簡寰堝use case錛屽茍涓斾嬌鐢≧ational鐨凴equisitePro鏉ヨ窡韙渶姹傜殑鍙樺寲銆傛帴鐫鍙堜嬌鐢≧ose瀵箄se case鐢諱簡use case diagram銆傚鍏抽敭瀵硅薄浜や簰榪囩▼鐢諱簡 sequence diagram錛屽鏌愪簺瀵硅薄鐨勭姸鎬佺敾浜唖tate diagram銆傛渶鍚庡緢鑷劧鐨勫鍑轟簡鏈閲嶈鐨刢lass diagram銆?/P>
鎴戠幇鍦ㄦ渶澶х殑鍥版儜鍦‥ntity Bean涓婇潰錛屽緩妯$殑鏃跺欏緢鑷劧浼氭湁涓涓猆ser瀵硅薄錛孲tudent, Teacher, Manager 瀵硅薄緇ф壙鑷繖涓猆ser瀵硅薄銆傞偅鏁版嵁搴撹〃鎬庝箞璁捐鍛紵絎竴縐嶏紝涓変釜瀵硅薄涓変釜琛紝瀵瑰簲StudentBean TeacherBean ManagerBean涓変釜EntityBean銆傜浜岀錛屼笁涓璞′竴涓〃錛屽彧鏈変竴涓猆serBean銆傜涓夌錛屾妸User鍗曠嫭涓涓璞★紝閭d箞灝辨槸鍥涗釜瀵硅薄鍥涗釜琛紝榪欐牱涓涓瓙瀵硅薄錛岃鏄犲皠涓ゅ紶琛‥ntityBean涓嶈鍚с?BR>鏆傛椂涓嶇絀剁珶鐢ㄤ粈涔堣璁★紝鏉ヨ冨療涓涓嬫枃妗e鍍廌ocBean錛屾垜浠富瑕佺湅鐪嬪畠鐨刢mr閮ㄥ垎錛屼竴涓猚mr鏄痑uthor 灞炴э紝瀹冨簲璇ユ槸涓夌瑙掕壊瀵硅薄涓殑涓縐嶏紝闂鏉ヤ簡錛屽鏋滀笁涓璞′笁涓〃錛岄偅涔堟垜榪欓噷鐨刢mr鎬庝箞鍐欙紵
public abstract StudentLocal getAuthor(); ?
public abstract TeacherLocal getAuthor(); ?
public abstract ManagerLocal getAuthor(); ?
鑰冨療絎簩縐嶏紝涓変釜瀵硅薄涓涓〃錛屽彧鏈変竴涓猆serBean銆傞偅榪欎釜鏄浉褰撶畝鍗曠殑鍙渶瑕?BR>public abstract UserLocal getAuthor();
閭f渶鍚庡彧鏈夌浜岀鏂瑰紡鎵嶈兘瑙e喅闂錛屽氨鏄彧鏈変竴涓猆ser瀵硅薄錛屼簬鏄垜涓轟簡浣跨敤EntityBean涓嶅緱涓嶅鎴戠殑妯″瀷榪涜淇敼錛屾妸鍘熸潵娓呮櫚鐨勪笁涓璞℃弶鍚堝埌涓璧鳳紝铏界劧璇翠互鍚庢煇涓猻tudent鍙樻垚浜唗eacher 鎴栬卪anager鍙互寰堟柟渚跨殑鍗囩駭錛屼絾鏄繖縐嶆儏鍐靛湪鎴戣繖涓緥瀛愰噷闈㈡槸寰堝皯鏈夌殑錛岃屼笖鏁版嵁搴撹繖縐嶅悎騫跺瓙綾葷殑鏂規硶緇檛eacher錛宮anager褰㈡垚浜嗗緢澶氱殑null鍊鹼紝铏界劧榪欐槸蹇界暐涓嶈鐨勶紝浣嗘槸鎬諱笉鏄紭闆呯殑鍋氭硶錛屾渶鍏抽敭鐨勬槸鎴戠殑瀵硅薄妯″瀷鍙堜竴嬈″悜鍏崇郴妯″瀷濡ュ崗浜嗐?/P>
CMR鐨勫彟澶栦竴涓棶棰樻槸錛岃CMR蹇呴』鎶婃墍鏈夌浉鍏崇殑Bean鏀句竴涓寘閲岄潰錛屽湪涓涓獂ml鏂囦歡閲岄潰閰嶇疆錛屾垜鐨勯」鐩噷闈㈢殑entity bean閮芥槸瑕佹洿user鏈夊叧緋葷殑錛岄偅鎴戦兘闇瑕佹妸榪欎簺bean鎵撴垚涓涓寘錛岀敤涓涓獂ml鎻忚堪錛佹垜鐨勮繕鏄皬欏圭洰錛屽鏋滀竴涓」鐩湁100涓猠ntity bean錛岃繖浜沞ntity bean閮芥槸鐩鎬簰鍏寵仈鐨勶紝閭f垜瑕佹妸榪?00涓猠ntity bean鏀懼湪鎵撴垚涓涓寘錛岀敤涓涓獂ml閰嶇疆錛侀偅榪欎釜xml鏂囦歡璇ユ湁澶氶暱錛佷竴涓皬灝忕殑閿欒鍏ㄩ儴瀹岃泲銆?/P>
鐪嬫潵Entity Bean紜疄濡傚緢澶氫漢璇寸殑閭f牱涓嶆槸鍗佸垎鐏墊椿錛屾垜涔熷紑濮嬪懼悜浜庣敤hibernate鏉ュ仛鎸佷箙鍖栦簡錛屼絾鏄垜闇瑕佹湁瓚沖鐨勭伒媧繪э紝鎴戞兂緇ф壙鍜屽鎬佺殑鏀寔榪樻槸寰堥噸瑕佺殑錛岃繖鏍鋒墠鑳界湡姝f槸鈥渙bject-oriented domain models鈥濇柟寮忥紝鑰屼笉鏄互鏁版嵁搴撹〃涓轟腑蹇冪殑鏂瑰紡錛屽紩鐢℉ibernate鐨勪竴鍙ヨ瘽鈥淗ibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier鈥?/P>
鎴戝AOP涔熸槸鍗佸垎鍏蟲敞錛屽洜涓哄畠瀹炲湪鏄お嬋鍔ㄤ漢蹇冪殑姒傚康浜嗭紝鏈変簡AOP閭d箞鎴戜滑榪樿瀹瑰櫒騫蹭粈涔堬紝瀹瑰櫒鐨勫姛鑳藉畬鍏ㄥ彲浠ラ氳繃AOP鏉ュ疄鐜幫紝灝卞儚Spring妗嗘灦錛岄櫎浜嗘病鏈夊垎甯冨紡澶栧嚑涔庨兘鑳芥敮鎸佸惂銆傝宩boss4.0涔熷凡緇忛氳繃AOP瀹炵幇浜嗐傝冨療鎴戠殑欏圭洰錛屾垜鍙戠幇鏈変竴涓繖鏍風殑闇姹傞渶瑕佹弧瓚籌紝灝辨槸錛氬湪鎵ц鏌愪簺business logic涔嬪墠蹇呴』瑕佹嫻嬪榪欎釜鏂規硶鐨勮皟鐢ㄦ槸鍚﹁秴榪囨湡闄愪簡錛屾瘮濡傚鐢熷幓閫夋嫨鐮旂┒璇鵑錛屽鏋滈夋嫨榪囦簡灝變笉鑳藉啀嬈¢夋嫨錛岃櫧鐒惰繖涓柟娉曞彲浠ョ敱鍓嶅彴寰堢畝鍗曠殑瑙e喅錛屼絾鏄垜瑙夊緱鍦ㄤ笟鍔¢昏緫灞傞槻姝㈣繖縐嶈涓虹殑鍙戠敓鏄笟鍔″畬鏁存х殑涓涓儴鍒嗐傝岄氳繃AOP錛屾妸榪欐牱涓涓緢澶氭柟娉曢兘瑕佽皟鐢ㄧ殑鍏叡鍔熻兘浣滀負涓涓猘spect鏄緢濂界殑銆傛垜鐨勯棶棰樻槸鍦ㄥ鍣ㄤ腑榪愯鐨凟JB鑳藉鐢ˋOP鍚楋紵鍦↗boss4.0閲岄潰鍚勭EJB閮芥槸閫氳繃AOP鏂瑰紡鏉ユ彁渚涙湇鍔$殑錛屼技涔庢垜鑷繁澶氬姞涓灞備笟鍔″眰闈㈢殑鏈嶅姟搴旇鏄彲琛岀殑錛堜嬌鐢╦boss aop錛夛紝浣嗘槸榪欐牱鐨凟JB鏀懼湪鍒殑瀹瑰櫒閲岄潰榪愯浼氭庝箞鏍鳳紵浼氬獎鍝嶅埌瀹瑰櫒瀵笶JB鐨勫共棰勫悧錛熻鍚勪綅鍓嶈緢鎸囩偣銆?/P>