锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
鐢↗DBC鏃?PreparedStatement灝變細鐢ㄥ埌set()鏂規硶,浣唖et榪涘幓鐨勫垯鏄痡ava.sql.Date綾誨瀷,鑰屼笉鏄痡ava.util.Date綾誨瀷,闂灝卞嚭鏉ヤ簡,姣斿褰撲綘set榪涘幓涓涓椂闂?鍋囪鏃墮棿2006-12-18 15:43:23),濡備笅:
聽java.sql.Date today = new java.sql.Date(); |
鎴戣鏌ュ湪榪欎釜鏃墮棿浠ュ墠鐨勬暟鎹?鍙粨鏋滃嵈榪斿洖浜?font color="#ff0000">17鍙蜂互鍓嶇殑緇撴灉,
鍦ㄦ暟鎹簱閲屾煡涔熸槸娌℃湁闂鐨?浣嗛棶棰樺嚭鍦ㄤ粈涔堝湴鏂瑰憿?鍚庢潵鎵懼埌鐨勭瓟妗堝氨鏄?閫氳繃榪欑鏂瑰紡java.sql.Date浼氱渷鐣ュ皬鏃?鍒?縐?杞垚鐨凷QL浼氶粯璁や負2006-12-18 00:00:00,璁や負鏄煡2006-12-18 00:00:00涔嬪墠鐨勭粨鏋?灝辮繖鏍鋒墠閫犳垚浜嗚繖嬈″ご鐥涚殑浜嬩歡,鑰岃繖涓浠g爜榪樹笉鏄湰浜烘墍鍐?鐪嬪埆浜虹殑浠g爜鐪熸槸绱?
聽
Here's my little exploration to Spring's AOP framework - a little interceptor which just logs which class is called and which method is called, plus logging the method invocation time; however I hope this can help others to understand Spring's AOP and help them to write interceptors of their own.
-cptechno
An interceptor used in Spring need to implement the
org.aopalliance.intercept.MethodInterceptor
interface, which requires implementing this method:
|
And next, comes that little interceptor...
|
You can do anything as you like; but pay attention to these two lines:
|
The execution sequence is as follows:
Object retVal = methodInvocation.proceed();
Object retVal = methodInvocation.proceed();
, which gives control to the next interceptor in the interceptor stack, or the underlying method.
return retVal;
return retVal;
, which returns control to the interceptor above it, or exit the whole interceptor stack.
Next, to use the interceptor we wrote, we need to turn our business object as an AOP target, like this:
|
As shown, we just need to change the bean's id.
Next we need to hang the interceptor on to Spring's ApplicationContext.
|
And the last step, we declare our business object actually in the ApplicationContext, via its interface we defined, via Spring's ProxyFactoryBean.
|
On the application code that will access the business object, no changes are necessary.
Then at your logging target (console, file, etc...) you can see the following output similar to this (time and level info trimmed here):
|
路緋葷粺鎬繪鏋墮噰鐢⊿UN J2EE妗嗘灦錛屼嬌鐢↗AVA/XML鎶鏈拰緇勪歡鎶鏈紝 鍩轟簬Application server寮鍙戙?
路欏圭洰涓殑紼嬪簭蹇呴』涓ユ牸鎸塉2EE1.3瑙勮寖鏉ョ紪鐮侊紝EJB寤鴻閲囩敤2.0瑙勮寖緙栫爜錛屽敖鍙兘澶氫嬌鐢‥JB 妯″紡璁捐錛屽弬鑰冩妧鏈枃妗e涓嬶細
j2ee-1_3-doc-tutorial-draft5.pdf
2.銆奐Boss 3.0Quick Start Guide銆?/a>
路嫻嬭瘯鐢ˋpplication server閲囩敤JAS錛孞AS 閰嶇疆浜嶭inux OS涓嬶紝IP鍦板潃錛?92.168.0.6銆傜櫥褰曠敤鎴峰悕錛欽2EEOA錛屽瘑鐮侊細J2EEOA銆傜櫥褰昮tp宸ュ叿寤鴻浣跨敤SSH Secure Shell鎴朙eapFTP錛宖tp鍦板潃涓?92.168.0.6:22銆?
路欏圭洰寮鍙戞簮鐮佺洰褰曚負/home/local/jboss/applications/J2EEOA/src錛岄」鐩紑鍙戞枃妗g洰褰曚負/home/product/J2EEOA/銆?
路 鏁版嵁搴撴湇鍔″櫒IP涓?92.168.0.222錛屾暟鎹簱閲囩敤Mysql錛岀鐞嗗伐鍏蜂負phpadmin錛岀櫥褰曟暟鎹簱鐨勭敤鎴峰悕涓簍est錛屽瘑鐮佷負test銆?
姣忎綅寮鍙戝皬緇勬垚鍛樹竴瀹氳緇濆閬靛畧浠ヤ笅鍒涘緩婧愪唬鐮佺洰褰曠殑瑙勮寖銆?
欏圭洰寮鍙戠洰褰曠粨鏋勭畝鍥撅細
欏圭洰寮鍙戠洰褰曠粨鏋勮鏄庯細
妯″潡銆佺粍浠跺紑鍙戠洰褰曠粨鏋勭畝鍥撅細
璇存槑錛歴rc銆乪tc鐩綍鍜宐uild.bat銆乥uild.sh銆乥uild.xml涓哄紑鍙戜漢鍛樺緩绔嬬殑鐩綍錛宐uild鍜宭ib鐩綍涓虹敱ant宸ュ叿鐢熸垚鐨勭洰褰曘?
妯″潡銆佺粍浠跺紑鍙戠洰褰曠粨鏋勮鏄?/b>
搴旂敤紼嬪簭寮鍙戠洰褰曠粨鏋勭畝鍥撅細
搴旂敤紼嬪簭寮鍙戠洰褰曠粨鏋?/b>
1. 鐢變簬欏圭洰鐢卞涓▼搴忓憳涓璧鋒潵榪涜緙栫爜錛屾墍浠ュ簲鐢ㄧ▼搴忓紑鍙戠洰褰曠粨鏋勫拰妯″潡銆佺粍浠跺紑鍙戠洰褰曠粨鏋勭殑涓嶄竴鏍楓?
2. 搴旂敤紼嬪簭寮鍙戠洰褰曠粨鏋勬病鏈塻rc鐩綍錛屼絾澶氫簡涓涓猼eam鐩綍錛屾鐩綍瀛樻斁鎵鏈夌▼搴忓憳鐨刢lasses鍜孞sp浠g爜銆?
3. 搴旂敤紼嬪簭寮鍙戠洰褰曠粨鏋勪笅build.xml鍜屾ā鍧椼佺粍浠跺紑鍙戠洰褰曠粨鏋勪笅鐨刡uild.xml鏈夊緢澶т笉鍚屻?
4. 鐢遍」鐩粍闀胯礋璐g鐞唀tc鐩綍銆乥uild.xml銆乥uild.bat銆乥uild.sh銆乥uild.properties錛岀▼搴忓憳鍒嗗埆綆$悊team鐩綍涓嬬殑灞炰簬鑷繁鐨勭洰褰曪紝濡傜▼搴忓憳tom綆$悊team/tom鐩綍銆?
build.xml緙栫爜瑙勮寖
路 搴旂敤紼嬪簭鐩綍涓嬬殑build.xml
婧愪唬鐮侊細搴旂敤紼嬪簭鐩綍涓嬬殑build.xml瑙勮寖妯℃澘
璇存槑錛氬湪寤虹珛build.xml鏃訛紝緇勯暱鍙渶淇敼鍒涘緩鐨勬椂闂村拰鍙橀噺ProjectName絳夈?
妯″潡銆佺粍浠剁洰褰曚笅鐨刡uild.xml
婧愪唬鐮侊細妯″潡銆佺粍浠剁洰褰曚笅鐨刡uild.xml瑙勮寖妯℃澘
璇存槑錛氬湪寤虹珛build.xml鏃訛紝寮鍙戜漢鍛樺彧闇淇敼鍒涘緩鐨勬椂闂村拰鍜屽彉閲廝rojectName銆乧omponentName絳夈?
路 欏圭洰涓殑JAVA婧愪唬鐮佸繀欏繪寜銆奐AVA寮鍙戣鑼冦嬨?
路欏圭洰涓殑JSP浠g爜蹇呴』鎸夈奐SP寮鍙戣鑼冦嬨?
路 姣忎綅寮鍙戝皬緇勬垚鍛樺湪寮鍙戦」鐩椂閮戒弗鏍兼寜姝よ鑼冩潵榪涜緙栧啓紼嬪簭錛岃欏圭洰涓墍鏈夌殑鏂囨。閮界湅璧鋒潵鍍忎竴涓漢鍐欑殑錛屽鍔犲彲璇繪э紝鍑忓皯欏圭洰緇勪腑鍥犱負鎹漢鑰屽甫鏉ョ殑鎹熷け銆?
路 姣忎綅寮鍙戝皬緇勬垚鍛樹竴瀹氳緇濆閬靛畧榪欎釜瑙勮寖銆傚綋瀹為檯搴旂敤涓庝笅闈㈢殑瑙勮寖鐩告姷瑙︽椂錛岃褰曚笅鍘熷洜銆佹綔鍦ㄥ悗鏋滐紝浠ュ強絎﹀悎瑙勮寖闇瑕佺殑鏉′歡錛屼絾蹇呴』鏄湪璁╃▼搴忔湁鑹ソ鐨勫彲璇繪х殑鍓嶆彁涓嬨?
鍦ㄥ仛涓氬姟閫昏緫妯″潡鍓嶏紝鍏堟妸涓浜涘噯澶囧伐浣滃仛鍑烘潵錛?
寤虹珛涓浜涘叕鐢ㄧ殑bean錛堥」鐩腑縐頒負緋葷粺鎺у埗鍣╟ontroller錛夛紝鍖呭悕涓篶om.cwap.oa.controller.*錛屾彁渚涚粰緋葷粺鍚勬ā鍧椾嬌鐢ㄣ傚寘鎷鏃墮棿銆佸瓧絎︾殑鎿嶄綔錛岃皟璇曞櫒錛岃蔣浠跺浗闄呭寲錛屽璇█鐗堟湰錛岀郴緇熺殑WEB澶栧3錛孧VC妯″紡鐨凷ervlet鍜孉ction錛屽WEB欏甸潰鏄劇ず鐨勬帶鍒跺鏍戠粨鏋勩佽礬寰勭粨鏋勶紱絳夌瓑銆?
寤虹珛涓涓簭鍒楀彂鐢熷櫒錛屽寘鍚嶄負com.cwap.oa.sequencegenerator.*錛屾彁渚涚粰bean浣跨敤錛屽畠鐢ㄦ潵浜х敓涓涓敮涓鐨処D錛岃屼笖涔熷彲鐢ㄦ潵璁℃暟錛屼篃灝辨槸鎶婂畠褰撴垚璁℃暟鍣ㄤ嬌鐢ㄣ備粙緇嶅浣曞彇id鐨勬柟娉曠殑鏂囧瓧瑕佸啓鍦╞ean鐨勪唬鐮佸唴錛屼互渚跨敓鎴怉PI鍚庝緵鍏跺畠寮鍙戜漢鍛樺弬闃呫?
寤虹珛涓涓猄erverFacade錛屽畠涓篍JB Home鎻愪緵緇熶竴鐨勬帴鍙c係erverFacade涓虹▼搴忚鐢ㄥ埌鐨勬墍鏈塃JB鐨刪ome handle鎻愪緵緙撳瓨錛屾彁楂樿闂晥鐜囥備互鍚庢煡鎵綣NDI Name鐨勬柟娉曢兘搴斿啓鍦ㄦ帴鍙i噷錛岃皟鐢ㄦ椂鐩存帴浠庢帴鍙h皟鐢ㄣ?
寤虹珛涓涓炕欏墊帶鍒跺櫒錛屽寘鍚嶄負com.cwap.oa.controller.web.page*錛岀敤鏉ヨ繘琛屽垎欏墊樉紺虹殑綆$悊錛屼互鍚庨〉闈腑鐨勫垎欏甸兘鐢辯炕欏墊帶鍒跺櫒綆$悊銆?
路 紼嬪簭涓墍鏈夌殑寮傚父澶勭悊浣跨敤緇熶竴鐨勮皟璇曞櫒錛宐ean鐨勫悕縐頒負com.cwap.oa.controller.util.Debug錛岀敤娉曡欏圭洰API銆?
路 紼嬪簭涓墍鏈夌殑鏃ュ織浣跨敤Jakarta-log4j綆$悊錛屽寘鐨勫悕縐頒負log4j-1.2.5.jar
瀹樻柟URL錛歨ttp://jakarta.apache.org/log4j/docs/index.html
路 鏀懼湪session涓殑鍙橀噺緇熶竴鏀懼湪涓涓猙ean閲屽瓨鍌紝涓嶇洿鎺ユ妸session鍙橀噺鍚嶇О鏀懼湪JSP銆丼ervlet鎴朆ean鍐咃紝瀛樺偍session鍙橀噺鍚嶇О鐨刡ean涓篶om.cwap.oa.controller.web.util.WebKeys錛屽彇session鍙橀噺鍚嶇殑鏂規硶涓篻etXX()銆?
路 鍙杝ession鍙橀噺鐨勫肩殑鏂規硶緇熶竴鏀懼湪涓涓猙ean閲岋紝bean鐨勫悕縐頒負com.cwap.oa.controller.web.util.JSPUtil錛屽彇session鍙橀噺鍊肩殑鏂規硶涓篻etXX()錛屼箣鍚庤鍙杝ession鍙橀噺鍊煎氨璋冪敤JSPUtil涓搴旂殑鏂規硶銆?
路 褰撳墠緋葷粺涓凡鐭ョ殑session鍙橀噺鍚嶆湁"userid"銆?userName"銆?locale"銆?skin"絳夛紝userid涓虹敤鎴鋒爣璇嗭紝userName涓虹敤鎴峰悕縐幫紝locale涓虹敤鎴烽夋嫨鐨勫湴鍩燂紝skin涓虹敤鎴烽夋嫨鐨勭晫闈㈤鏍箋?
浣跨敤DAO灝佽SQL璇█瀵規暟鎹簱鐨勭洿鎺ユ搷浣滐紝DAO閲囩敤Factory妯″紡緙栧啓銆?
鎵鏈夌殑涓氬姟閫昏緫浣跨敤緇勪歡鎶鏈傛瘡涓粍浠跺唴鍚屾椂鎻愪緵EJB鐗堟湰鍜孌AO鐗堟湰涓ょ鐨勬柟娉?涓嶆帹鑽愮洿鎺ヤ嬌鐢‥JB鐗堟湰鍜孌AO鐗堟湰鐨勬柟娉曘?
路 Bean銆丼ervlet銆丣SP涓殑澶氳璦鏂囧瓧閲囩敤鍒嗙鎶鏈紝灝嗗璇█鏂囧瓧鏀懼湪璧勬簮鏂囦歡涓紝淇濆瓨鐩綍涓?WEB-INF/classes/multi-langs鎴栧叾瀹冪洰褰曘?
路 褰撳墠鏀寔鐨勮璦鏈変笁縐嶏細綆浣撲腑鏂囷紙zh_CN錛夈佺箒浣撲腑鏂囷紙zh_HK錛夈佽嫳鏂囷紙en_US錛夈?
路 澶氳璦綆$悊鍣ㄧ殑鍚嶇О涓篶om.cwap.oa.controller.util.MultiLangsString錛屼嬌鐢ㄦ柟娉曡鏈」鐩瓵PI銆?
路 JSP欏甸潰涓殑鍥劇墖銆丆SS銆丣S絳夋枃浠墮兘搴旀斁鍦ㄧ粺涓鐩綍錛岀洰褰曚負/skin/skinName/skinLanguage錛屽叾涓璼kinName涓哄澹沖悕縐幫紝skinLanguage涓哄澹寵璦鐗堟湰錛屼緥濡?skin/green/zh_CN
路 鍥劇墖鏀懼湪images鐩綍閲岋紝CSS鏂囦歡鏀懼湪css鐩綍閲岋紝JS鑴氭湰鏀懼湪js鐩綍閲岋紝鍏跺畠璧勬簮(濡傚0闊熾佽棰戙丗lash鏂囦歡絳?瀛樻斁鏂規硶瑙侀」鐩瓵PI銆?
路 澶栧3綆$悊鍣ㄤ負com.cwap.oa.controller.web.skin.WebSkin錛岃皟鐢ㄦ柟娉曠粺涓鎺ュ彛涓篶om.cwap.oa.controller.web.util.JSPUtil銆?
路 鍦ㄧ嚎甯姪綆$悊鍣ㄤ負com.cwap.oa.help.*錛岃皟鐢ㄦ柟娉曠粺涓鎺ュ彛涓篶om.cwap.oa.help.client.HelpClientHelper銆?
路 姣忎竴涓狫SP欏甸潰涓彁渚涗竴涓湪綰垮府鍔╅摼鎺ワ紝鐢ㄦ埛鐐瑰嚮瀹冪洿鎺ヨ繘鍏ュ埌鍦ㄧ嚎甯姪涓績銆?
路 寤虹珛涓涓彇鐢ㄦ埛鍚嶇О鐨勯〉闈紝鍔熻兘鍖呮嫭鍙彇涓涓敤鎴峰拰鍙栧涓敤鎴楓?
路 鎵撳紑鍙栫敤鎴峰悕縐伴〉闈㈢殑鏂規硶錛屼嬌鐢ㄩ〉闈㈣剼鏈紝"javascript:return openWinToGetEmployee(frame,id,name,num)"錛屽綋num涓?錛屼唬琛ㄥ彲浠ュ彇澶氫釜鐢ㄦ埛錛屽惁鍒欙紝鍙兘鍙?涓敤鎴楓?
路 璋冪敤鏂規硶緇熶竴鎺ュ彛涓篶om.cwap.oa.controller.web.util.JSPUtil錛屾鏌ョ敤鎴鋒槸鍚︽湁鏉冮檺鐨勬柟娉曚負JSPUtil.isPermission(userid, permissions)
路 JSP涓楠岀敤鎴瘋韓浠介噰鐢╥nclude鏂瑰紡錛宨nclude鐨勬枃浠朵負checkUser.jsp
媯楠岀敤鎴瘋韓浠芥槸鍚︽槸涓鑸敤鎴鳳紝璋冪敤鏂規硶涓?
媯楠岀敤鎴瘋韓浠芥槸鍚︽槸綆$悊鍛橈紝璋冪敤鏂規硶涓?
媯楠岀敤鎴瘋韓浠芥槸鍚︽槸瓚呯駭綆$悊鍛橈紝璋冪敤鏂規硶涓?
鎽樿嚜璧涜開緗?http://developer.ccidnet.com/art/322/20021014/27601_1.html, http://developer.ccidnet.com/art/322/20021014/27601_2.html
浠婂ぉ鎵撴壂鍗敓錛屾暣鐞嗚嚜宸辯殑鍨冨溇涔︽椂鍙堟棤鎰忛棿緲誨埌浜咼DBC鐨勪功錛屽氨紿佺劧鎯寵搗榪欎簨錛岃屽悗灝辨槸
涓欏挎伓蹇冿紝鎰熻閭d綅浠佸厔瀹炲湪鏄瀮鍦俱傝秴綰у瀮鍦撅紒绔熺劧鑳介棶榪欎箞鍨冨溇鐨勯棶棰樸傞獋浠栦竴欏匡紝
鍙戞硠涓涓嬶紝鎰熻鑸掓湇澶氫簡銆?/p>
鍏跺疄瑕佸JDBC錛屽彧瑕佹槑鐧絁DBC鎵璧風殑浣滅敤閭d箞灝變笉浼氬緢闅俱?/p>
JDBC鐨勪綔鐢細