锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品亚洲精品观看不卡,亚洲人成亚洲精品,亚洲kkk4444在线观看http://m.tkk7.com/shooper/category/10944.htmlBeginning Javazh-cnWed, 28 Feb 2007 03:57:04 GMTWed, 28 Feb 2007 03:57:04 GMT60[Log4j] 閰嶇疆Log4j http://m.tkk7.com/shooper/articles/56599.htmlShooper.JavaShooper.JavaTue, 04 Jul 2006 14:10:00 GMThttp://m.tkk7.com/shooper/articles/56599.htmlhttp://m.tkk7.com/shooper/comments/56599.htmlhttp://m.tkk7.com/shooper/articles/56599.html#Feedback0http://m.tkk7.com/shooper/comments/commentRss/56599.htmlhttp://m.tkk7.com/shooper/services/trackbacks/56599.html [Log4j] 閰嶇疆Log4j

Log4J鐨勯厤緗枃浠?Configuration File)灝辨槸鐢ㄦ潵璁劇疆璁板綍鍣ㄧ殑綰у埆銆佸瓨鏀懼櫒鍜屽竷灞鐨勶紝瀹冨彲鎺ey=value鏍煎紡鐨勮緗垨xml鏍煎紡鐨勮緗俊鎭傞氳繃閰嶇疆錛屽彲浠ュ垱寤哄嚭Log4J鐨勮繍琛岀幆澧冦?br />
1. 閰嶇疆鏂囦歡
Log4J閰嶇疆鏂囦歡鐨勫熀鏈牸寮忓涓嬶細(xì)

#閰嶇疆鏍筁ogger
log4j.rootLogger聽
= [ level ] , 聽appenderName1 , 聽appenderName2 ,
聽鈥?br />
#閰嶇疆鏃ュ織淇℃伅杈撳嚭鐩殑鍦癆ppender
log4j.appender.appenderName聽
=
聽fully.qualified.name.of.appender.class聽
銆銆log4j.appender.appenderName.option1聽
=
聽value1聽
銆銆鈥β?br />銆銆log4j.appender.appenderName.optionN聽
=
聽valueN聽

#閰嶇疆鏃ュ織淇℃伅鐨勬牸寮忥紙甯冨眬錛?br />log4j.appender.appenderName.layout聽
=
聽fully.qualified.name.of.layout.class聽
銆銆log4j.appender.appenderName.layout.option1聽
=
聽value1聽
銆銆鈥β?br />銆銆log4j.appender.appenderName.layout.optionN聽
= 聽valueN聽

鍏朵腑 [level] 鏄棩蹇楄緭鍑虹駭鍒紝鍏辨湁5綰э細(xì)
FATAL聽聽聽聽聽 0
ERROR聽聽聽聽聽
3

WARN聽聽聽聽聽聽
4

INFO聽聽聽聽聽聽
6

DEBUG聽聽聽聽聽
7


Appender
涓烘棩蹇楄緭鍑虹洰鐨勫湴錛孡og4j鎻愪緵鐨刟ppender鏈変互涓嬪嚑縐嶏細(xì)
org.apache.log4j.ConsoleAppender錛堟帶鍒跺彴錛夛紝
org.apache.log4j.FileAppender錛堟枃浠訛級錛?br />org.apache.log4j.DailyRollingFileAppender錛堟瘡澶╀駭鐢熶竴涓棩蹇楁枃浠訛級錛?br />org.apache.log4j.RollingFileAppender錛堟枃浠跺ぇ灝忓埌杈炬寚瀹氬昂瀵哥殑鏃跺欎駭鐢熶竴涓柊鐨勬枃浠訛級錛?br />org.apache.log4j.WriterAppender錛堝皢鏃ュ織淇℃伅浠ユ祦鏍煎紡鍙戦佸埌浠繪剰鎸囧畾鐨勫湴鏂癸級

Layout錛氭棩蹇楄緭鍑烘牸寮忥紝Log4j鎻愪緵鐨刲ayout鏈変互涓嬪嚑縐嶏細(xì)
org.apache.log4j.HTMLLayout錛堜互HTML琛ㄦ牸褰㈠紡甯冨眬錛夛紝
org.apache.log4j.PatternLayout錛堝彲浠ョ伒媧誨湴鎸囧畾甯冨眬妯″紡錛夛紝
org.apache.log4j.SimpleLayout錛堝寘鍚棩蹇椾俊鎭殑綰у埆鍜屼俊鎭瓧絎︿覆錛夛紝
org.apache.log4j.TTCCLayout錛堝寘鍚棩蹇椾駭鐢熺殑鏃墮棿銆佺嚎紼嬨佺被鍒瓑絳変俊鎭級

鎵撳嵃鍙傛暟: Log4J閲囩敤綾諱技C璇█涓殑printf鍑芥暟鐨勬墦鍗版牸寮忔牸寮忓寲鏃ュ織淇℃伅錛屽涓?
銆銆%m聽聽 杈撳嚭浠g爜涓寚瀹氱殑娑堟伅
銆銆%p聽聽 杈撳嚭浼樺厛綰э紝鍗矰EBUG錛孖NFO錛學(xué)ARN錛孍RROR錛孎ATAL聽
銆銆%r聽聽 杈撳嚭鑷簲鐢ㄥ惎鍔ㄥ埌杈撳嚭璇og淇℃伅鑰楄垂鐨勬縐掓暟聽
銆銆%c聽聽 杈撳嚭鎵灞炵殑綾葷洰錛岄氬父灝辨槸鎵鍦ㄧ被鐨勫叏鍚嵚?br />銆銆%t聽聽 杈撳嚭浜х敓璇ユ棩蹇椾簨浠剁殑綰跨▼鍚嵚?br />銆銆%n聽聽 杈撳嚭涓涓洖杞︽崲琛岀錛學(xué)indows騫沖彴涓衡淺r\n鈥濓紝Unix騫沖彴涓衡淺n鈥澛?br />銆銆%d聽聽 杈撳嚭鏃ュ織鏃墮棿鐐圭殑鏃ユ湡鎴栨椂闂達(dá)紝榛樿鏍煎紡涓篒SO8601錛屼篃鍙互鍦ㄥ叾鍚庢寚瀹氭牸寮忥紝姣斿錛?d{yyy聽MMM聽dd聽HH:mm:ss
, SSS}錛岃緭鍑虹被浼鹼細(xì)2002騫?0鏈?8鏃ヂ?/span> 22 錛?/span> 10 錛?/span> 28 錛?/span> 921

銆銆%l聽聽 杈撳嚭鏃ュ織浜嬩歡鐨勫彂鐢熶綅緗紝鍖呮嫭綾葷洰鍚嶃佸彂鐢熺殑綰跨▼錛屼互鍙?qiáng)鍦ㄤ唬鐮佷腑鐨勮鏁般備婦渚嬶細(xì)Testlog4.main(TestLog4.java:
10 )聽

2. 鍦ㄤ唬鐮佷腑鍒濆鍖朙ogger:
1錛夊湪紼嬪簭涓皟鐢?strong>BasicConfigurator.configure()鏂規(guī)硶錛氱粰鏍硅褰曞櫒澧炲姞涓涓狢onsoleAppender錛岃緭鍑烘牸寮忛氳繃PatternLayout璁句負(fù)"%-4r [%t] %-5p %c %x - %m%n"錛岃繕鏈夋牴璁板綍鍣ㄧ殑榛樿綰у埆鏄?strong>Level.DEBUG.
2錛夐厤緗斁鍦ㄦ枃浠墮噷錛岄氳繃鍛戒護(hù)琛屽弬鏁頒紶閫掓枃浠跺悕瀛楋紝閫氳繃PropertyConfigurator.configure(args[x])瑙f瀽騫墮厤緗紱
3錛夐厤緗斁鍦ㄦ枃浠墮噷錛岄氳繃鐜鍙橀噺浼犻掓枃浠跺悕絳変俊鎭紝鍒╃敤log4j榛樿鐨勫垵濮嬪寲榪囩▼瑙f瀽騫墮厤緗紱
4錛夐厤緗斁鍦ㄦ枃浠墮噷錛岄氳繃搴旂敤鏈嶅姟鍣ㄩ厤緗紶閫掓枃浠跺悕絳変俊鎭紝鍒╃敤涓涓壒孌婄殑servlet鏉ュ畬鎴愰厤緗?br />
3. 涓轟笉鍚岀殑 Appender 璁劇疆鏃ュ織杈撳嚭綰у埆錛?/strong>
褰撹皟璇曠郴緇熸椂錛屾垜浠線寰娉ㄦ剰鐨勫彧鏄紓甯哥駭鍒殑鏃ュ織杈撳嚭錛屼絾鏄氬父鎵鏈夌駭鍒殑杈撳嚭閮芥槸鏀懼湪涓涓枃浠墮噷鐨勶紝濡傛灉鏃ュ織杈撳嚭鐨勭駭鍒槸BUG錛侊紵閭e氨鎱㈡參鍘繪壘鍚с?br />榪欐椂鎴戜滑涔熻浼?xì)鎯宠鏄兘鎶婂紓甯镐俊鎭崟鐙緭鍑哄堫C竴涓枃浠墮噷璇ュ濂藉晩銆傚綋鐒跺彲浠ワ紝Log4j宸茬粡鎻愪緵浜嗚繖鏍風(fēng)殑鍔熻兘錛屾垜浠彧闇瑕佸湪閰嶇疆涓慨鏀?strong>Appender
鐨?font color="#990000">Threshold
灝辮兘瀹炵幇,姣斿涓嬮潰鐨勪緥瀛愶細(xì)

[閰嶇疆鏂囦歡]
###聽set聽log聽levels聽###
log4j.rootLogger
= debug , 聽stdout , 聽D ,
聽E

###聽杈撳嚭鍒版帶鍒跺彴聽###
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target
=
System.out
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
= 聽%d{ABSOLUTE}聽%5p聽%c{ 1
}:%L聽-聽%m%n

###聽杈撳嚭鍒版棩蹇楁枃浠堵?##
log4j.appender.D
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
=
logs/log.log
log4j.appender.D.Append
=
true
log4j.appender.D.Threshold
=
DEBUG聽##聽杈撳嚭DEBUG綰у埆浠ヤ笂鐨勬棩蹇?/strong>
log4j.appender.D.layout
=
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
= %-d{yyyy-MM-dd聽HH:mm:ss}聽 [ %t:%r ] - [ %p ]
聽%m%n

###聽淇濆瓨寮傚父淇℃伅鍒板崟鐙枃浠堵?##
log4j.appender.D
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
=
logs/error.log聽##聽寮傚父鏃ュ織鏂囦歡鍚?br />log4j.appender.D.Append = true
log4j.appender.D.Threshold
=
ERROR聽##聽鍙緭鍑篍RROR綰у埆浠ヤ笂鐨勬棩蹇?!!
log4j.appender.D.layout
=
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
= %-d{yyyy-MM-dd聽HH:mm:ss}聽 [ %t:%r ] - [ %p ] 聽%m%n

[浠g爜涓嬌鐢╙
public class 聽TestLog4j聽 {
聽聽聽聽
public static void 聽main(String[]聽args)聽
{
聽聽聽聽聽聽聽聽PropertyConfigurator.configure(
" D:/Code/conf/log4j.properties "
);
聽聽聽聽聽聽聽聽Logger聽logger聽
= 聽Logger.getLogger(TestLog4j. class
);
聽聽聽聽聽聽聽聽logger.debug(
" debug "
);
聽聽聽聽聽聽聽聽logger.error(
" error "
);
聽聽聽聽}

}

榪愯涓涓嬶紝鐪嬬湅寮傚父淇℃伅鏄笉鏄繚瀛樺湪浜嗕竴涓崟鐙殑鏂囦歡error.log涓?/font>


]]>
2005 Java 緇艱堪&2006 Java 灞曟湜http://m.tkk7.com/shooper/articles/45320.htmlShooper.JavaShooper.JavaTue, 09 May 2006 16:29:00 GMThttp://m.tkk7.com/shooper/articles/45320.htmlhttp://m.tkk7.com/shooper/comments/45320.htmlhttp://m.tkk7.com/shooper/articles/45320.html#Feedback0http://m.tkk7.com/shooper/comments/commentRss/45320.htmlhttp://m.tkk7.com/shooper/services/trackbacks/45320.html

浣滆?matrix 鏉ヨ嚜:Matrix

2005 灝辮榪囧幓浜嗐?br />
榪囧幓鐨勪竴騫達(dá)紝Mustang 娌¤兘鍑烘潵錛孍JB3鍒氬垰鎵嶆彁浜ゆ渶緇堣崏妗堬紝Ajax鍏磋搗浣嗘槸浜旇姳鍏棬涓嶇煡閬撳簲璇ョ敤璋侊紝Aspectj 5鍑烘潵浜嗭紝浣嗘槸緙轟箯鎯婂枩銆?br />
鎴栬鎴戜滑浼?xì)璇村Q岃繃鍘葷殑2005錛孞ava鐣岀己涔忔垚緇╋紝浣嗘槸鍗存鏃犵枒闂紝Java閬ラ仴棰嗗厛浜庡叾浠栬璦銆備粠11鏈堢殑璇█鎺掕姒淛ava閬ラ仴棰嗗厛錛屽埌浠婂勾鐨凧ava鍥句功閿鍞粺璁′笂錛孞ava鍥句功閿鍞繪暟鏄疌#鐨?鍊嶏紝PHP鐨?.5鍊嶏紝Perl鐨?鍊嶏紝Ruby/Python鐨?鍊?

榪欒凍浠ヨ鎴戜滑瀵?006鍏呮弧鎯寵薄銆?br />
涓嶈繃錛岃繕鏄鎴戜滑鍏堝洖欏句笅2005鍚?...

1銆?005 涔?Java 瀵規(guī)墜

聽聽聽聽聽聽榪囧幓鐨?005錛孞ava鏃犵枒鏄渶鍙楁榪庣殑璇█銆備絾鏄疛ava涔熼潰涓村叾浠栬璦鐨勬寫鎴橈紝鍏朵腑Bruce A. Tate錛屽湪涓鏂囦腑錛屾彁鍑轟簡鏈夊彲鑳芥寫鎴楯ava寮鍙戠殑4縐嶆妧鏈?/u>錛屽寘鎷姩鎬佽璦錛孋ontinuation錛孋onventions錛屽厓緙栫▼絳夈?br />
聽聽聽聽聽聽Ruby鍙互璇存槸鏈鏈夊彲鑳芥寫鎴楯ava鐨勮璦錛屽垰鍒氬彂甯冪殑Rails1.0寮曡搗浜咶ans鐨勭柉鐙?/u>銆俁ails浼?xì)涓嶄細(xì)鏄笅涓浠d紵澶х殑妗嗘灦錛熸湁鍙兘銆傝鍋氫竴涓夋嫨鐨勮瘽錛孯ails搴旇浼?xì)鏄湪鋴社敤Ruby鎴栨槸鍏朵粬鍔ㄦ佺紪紼嬭璦鐨勫厓緙栫▼妗嗘灦娼祦涓殑絎竴涓備絾鏄疛ava宸茬粡寮濮嬪紩榪汻uby鐨勭壒鎬т簡錛屾瘮濡俆rails錛孏roovy銆?br />
2銆?005 涔?Java 鏂扮帺鎰?/span>

Drools錛欴rools 鏄竴涓熀浜嶤harles Forgy's鐨凴ete綆楁硶鐨勶紝涓撲負(fù)Java璇█鎵璁捐鐨勮鍒欏紩鎿庛俁ete綆楁硶搴旂敤浜庨潰鍚戝璞$殑鎺ュ彛灝嗕嬌鍩轟簬鍟嗕笟瀵硅薄鐨勫晢涓氳鍒欑殑琛ㄨ揪鏇翠負(fù)鑷劧銆侱rools鏄敤Java鍐欑殑錛屼絾鑳藉悓鏃惰繍琛屽湪Java鍜?Net涓娿侱rools鎻愪緵浜嗗0鏄庡紡紼嬪簭璁捐(Declarative Programming),騫朵笖浣跨敤鍩熸弿榪拌璦(Domain Specific Languages (DSL))銆俉eb鍜屾寔涔呭眰妗嗘灦鎴戜滑宸茬粡鏈夊緢澶氶夋嫨浜嗭紝浣嗘槸澶勫湪涓棿灞傜殑鍟嗗姟閫昏緫鏈夊ソ鐨勬鏋跺悧錛熶綘甯屾湜姣忔緇忕悊緇欎綘涓涓柊鐨勫懡浠ゅ氨涓嶅緱涓嶉噸緙栬瘧閭d簺澶嶆潅鐨刬f ... then 鎰忓ぇ鍒╅潰鏉′唬鐮佸悧錛?a target="_new">Drools- 鍟嗗姟閫昏緫妗嗘灦鐨勯夋嫨榪欑瘒鏂囩珷涓紝淇濈綏甯冩湕鎺ㄨ崘鐨凞rools鐨勮鍒欏紩鎿庢垨璁告槸瀹屾垚榪欑被浠誨姟鐨勬渶濂介夋嫨;涓轟綘鐨勫熀浜嶴PRING鐨勫簲鐢ㄥ鍔犵畝鍗曡鍒欏紩鎿?/u>鎻忚堪濡備綍涓烘祦琛岀殑Spring妗嗘灦寮鍙戠畝鍗曠殑瑙勫垯寮曟搸錛?a target="_new">鍦ㄤ綘鐨勪紒涓氱駭java搴旂敤涓嬌鐢―rools涓鏂囧垯鍚戜綘灞曠ず濡備綍鍦ㄤ紒涓氱駭Java搴旂敤涓嬌鐢―rools.

Portlet錛氣淧ortlets鏄竴縐峎eb緇勪歡錛嶅氨鍍弒ervlets錛嶆槸涓撲負(fù)灝嗗悎鎴愰〉闈㈤噷鐨勫唴瀹硅仛闆嗗湪涓璧瘋岃璁$殑銆傞氬父璇鋒眰涓涓猵ortal欏甸潰浼?xì)寮曞彂澶氫釜portlets琚皟鐢ㄣ傛瘡涓猵ortlet閮戒細(xì)鐢熸垚鏍囪孌碉紝騫朵笌鍒殑portlets鐢熸垚鐨勬爣璁版緇勫悎鍦ㄤ竴璧峰祵鍏ュ埌portal欏甸潰鐨勬爣璁板唴銆傗濓紙鎽樿嚜Portlet瑙勮寖錛孞SR 168錛夈?005錛孭ortlet妗嗘灦灞傚嚭涓嶇┓銆?a target="_new">浠涔堟槸Portlet ?璁╀綘鐨凱ortlet涔嬫梾浠庤繖閲屽紑濮嬨?br />

Ajax錛?005騫達(dá)紝榪樻湁浠涔堟瘮Ajax鏇寸伀鍛紵Ajax鍏磋搗, 浼犵粺Web妗嗘灦灝嗚蛋鍚戜綍鏂癸紵 寮曡搗騫挎硾璁ㄨ錛屼竴搴﹁浜烘劅鍙楀埌浜咥jax鐨勫嚩鐚涗箣鍔褲傝櫧鐒禔jax鍜孞ava娌℃湁鐩存帴鍏崇郴錛屼絾鏄鏃犵枒闂瓵jax涔熸槸Java鐣屽叧蹇冪殑涓滆タ銆?a target="_new">Ajax: Web搴旂敤鐨勬柊鏂規(guī)硶浠嬬粛浜嗚繖涓皢浠や漢浠叴濂嬬殑鎶鏈?br />聽聽聽聽
Ajax鐨勫簲鐢ㄤ篃灞傚嚭涓嶇┓錛屾瘮濡侴oogle灝辨垚鍔熷湴浣跨敤浜咥jax銆?a target="_new">鐢ˋJAX鏉ユ帶鍒朵功絳懼拰鍥為鎸夐挳鍛婅瘔鎴戜滑濡備綍鐢ˋJAX鏉ユ帶鍒朵功絳懼拰鍥為鎸夐挳銆?br />
涓緋誨垪妗嗘灦涔熼殢涔嬭屽嚭鏉ワ紝姣斿DWR, Ajaxanywhere錛孉jaxtags銆傚叾涓細(xì)DWR璁〢JAX濡傛綆鍗?/u>灞曠ずDWR濡備綍浣垮緱AJAX鐨勫簲鐢ㄦ棦綆鍗曞張蹇嵎銆?a target="_new">鍒濇帰AjaxTags灞曠ず濡備綍浣跨敤Ajaxtags榪涜Ajax寮鍙戙?br />
SOA錛氬綋鐒訛紝2005涓嶄粎鏄鏋訛紝2005榪樻湁SOA錛孊EA, IBM, ORACLE..... 涓瀹跺張涓瀹朵紒涓氬叕甯冧簡浠栦滑鐨凷OA鏂規(guī), 瀹gО浠栦滑鐨勪駭鍝佹敮鎸丼OA鍔熻兘. SCA鍜孲DO涔熷皢緇勬垚鏂扮殑SOA緙栫▼妯″瀷銆?a target="_new">SCA鍜孲DO灝嗙粍鎴愭柊鐨凷OA緙栫▼妯″瀷璇存槑浜嗗浣曞湪瀹炵幇浜咼2EE1.4瑙勮寖鐨勫簲鐢ㄦ湇鍔″櫒涔嬮棿錛屾瘮濡侽racle Application Server 10g錛屼嬌鐢↗2EE1.4寤虹珛鍙簰鎿嶄綔鐨勶紝杞諱究鐏墊椿鐨勬湇鍔★紱SOA鏋舵瀯涓殑浜嬩歡椹卞姩鏈嶅姟璁ㄨ浣跨敤Mule瀹炵幇涓涓珮鏁堢殑浜嬩歡椹卞姩鍜岄潰鍚戞湇鍔$殑騫沖彴錛?闈㈠SOA, 浣犲噯澶囧ソ浜嗗悧?

RPC錛歐eb搴旂敤鐨凴PC鏂瑰紡璋冪敤錛岄殢鐫Web2.0鐨勫叴璧鳳紝RPC鏂瑰紡閫愭笎鎴愪負(fù)Web璋冪敤鐨勪竴縐嶆柟寮忋?br />
鍒嗗竷寮忕粍浠跺紑鍙?/b>錛氬湪涓涓垎甯冨紡搴旂敤褰撲腑錛屾彁渚涗竴涓粺涓瀵瑰鎺ュ彛錛岄氳繃鍙噸鐢ㄧ殑澶栭儴API鏉ユ弧瓚抽渶姹傘?a target="_new">Java緇勪歡寮鍙?涓涓蹇墊鏋?/u>鎻愬嚭浜嗕竴涓瀯寤烘蹇墊鏋跺湴瑙e喅鏂規(guī).


3銆侶ibernate緇х畫鍓嶈繘

聽聽聽聽Hibernate浠嶇劧鏄渶鍙楁榪庣殑浼佷笟綰у紑鍙戞寔涔呭眰鏂規(guī)錛孍jb 3.0 鐨勫嚭鐜版槸鍚︿細(xì)璁〩ibernate鐨勫彂灞曟湁浠涔堝彉鍖栧悧錛?榪欐棤鐤戞槸璁╁ぇ瀹墮兘鎰熷叴瓚g殑浜嬫儏銆傝繃鍘葷殑涓騫達(dá)紝鍏充簬Hibernate涔熸湁寰堝鏈夎叮鐨勪笢瑗匡細(xì)Hibernate 3 鐨凢ormulas灞曠幇formula鐨勫悇縐嶇壒寰佹槸濡備綍杈呭姪妯″紡杞崲鐨勶紱鑰?a target="_new">Magicgod鐨凥ibernate鐨勬濊?/u>鍒欐彁鍑轟簡鎻愬埌浜咹ibernate鐨勪竴浜涘急鐐癸紱銆?br />
4銆係pring澶х儹

聽聽聽聽 娌℃湁浠涔堟枃绔狅紝姣?a target="_new">POJO搴旂敤妗嗘灦錛歋pring涓嶦JB3.0鐨勬瘮杈?/u> 澶哄緱鏇村鐨勪漢鐨勭溂鐞冧簡銆係pring妗嗘灦铏界劧寰堟祦琛屼絾騫朵笉鏄竴涓爣鍑嗙殑寮婧愭鏋訛紝EJB3.0鏄敱Java Community Process (JCP)鍒惰鐨勬爣鍑嗘鏋訛紝涓烘墍鏈変富瑕佺殑J2EE鍘傚晢鏀寔銆備袱鑰呴兘澶ч噺鍦頒嬌鐢ㄤ簡渚濊禆娉ㄥ叆銆?a target="_new">鍦⊿PRING涓疄鐜頒簨鍔℃殏鍋?/u>璁ㄨ浜哠pring鐨勪簨鍔$鐞嗙壒鎬с?a target="_new">鍦⊿pring涓厤緗瓾ibernate浜嬪姟鎺㈣浜嗘庝箞鐢⊿pring鏉ヨ閰嶇粍浠跺強(qiáng)鍏朵簨鍔$鐞嗐?a target="_new">鐖變笂Spring鐨?涓悊鐢?/u>閲屼綔鑰呮弿榪頒簡浠栦負(fù)浣曞枩嬈笂浜哠pring錛涜?a target="_new">浣跨敤EJB 3.0綆鍖栦紒涓氱駭Java寮鍙?/u>闃愯堪浜嗗浣曚嬌鐢‥JB 3.0 娉ㄩ噴鏉ュ紑鍙戣棔鍚堟澗鏁g殑POJO搴旂敤鍙?qiáng)瀹瑰櫒鏈嶅姟鍣ㄥ浣暯帯鐞哖OJO銆?br />
聽聽聽聽2006錛岀湅鏉ヨ繕鏈変竴鍦哄ぇ鎴樸?

5銆傚湪Eclipse鐨勫獎瀛愪笅

聽聽聽聽 璋冩煡琛ㄧず錛岃秴榪?0%鐨勫紑鍙戣呬嬌鐢‥clipse榪涜寮鍙戙侲clipse姣棤鐤戦棶宸茬粡鍗犳嵁浜咺DE鐨勪富嫻佸競鍦恒侲clipse鐨勫叴璧鳳紝涔熼棿鎺ュ紩璧蜂簡Borland鐨勭鍘匯備絾鏄篃寮曡搗浜咺DE宸ュ叿鐨勭珵浜夊姞鍓э紝瀵瑰紑鍙戣呮槸浠朵笉鎶樹笉鎵g殑濂戒簨銆?a target="_new">鎴愪負(fù)Eclipse鐑敭楂樻墜鎻愬埌浜嗛偅浜涗細(xì)璁╀綘鐨勬墜鎸囧姩鐨勯蹇殑鐑敭緇勫悎銆傝繖鍙槸Eclipse蹇嵎鏂逛究鐨勪竴涓緝褰便傚垰鍙戝竷鐨刉TP,聽聽 濂界敤鐨凪yeclipse錛岄兘鎺ㄥ姩鐫Eclipse鐨勪笉鏂彂灞曪紝鎴栬榪欏氨鏄ぞ鍖虹殑鍔涢噺銆?br />
6銆侫NT錛?/span>

聽聽聽聽聽聽ANT浠嶇劧寰堝彈嬈㈣繋銆侫NT涓嶄粎浠呮槸涓涓狟uild宸ュ叿錛屽畠榪樺彲浠ヤ綔鏇村鐨勪簨鎯呫?a target="_new">浣跨敤Ant榪涜W(xué)eb寮鍙?/u>浠嬬粛WEB 搴旂敤紼嬪簭鐨勯儴緗詫紝鍖呮嫭get, serverdeploy, 鍜?scp絳夈?a target="_new">浣塊」鐩紑鍙戣嚜鍔ㄥ寲鎻忕粯浜嗙敤Ant鑷姩鍖栦綘鐨勯」鐩兘甯︽潵鐨勫ソ澶勩?br />
7銆?006鐨凧ava鏈熷緟錛?/span>

路EJB3: EJB3鏈緇堣崏妗堟彁浜わ紝棰勭ず鐫EJB3鐨勫嵆灝嗗埌鏉ヤ簡錛岀浉淇℃槑騫翠竴瀹氱▼搴︿笂鏄疎JB3騫達(dá)紝綆鍖栧紑鍙戞槸鍚︾湡鐨勫疄鑷沖悕褰掞紵
路Mustang: 涓嶇煡閬揗ustang 鐨勫嚭鐜幫紝浼?xì)缁橨ava鎬ц兘甯︽潵澶氬ぇ鐨勬敼鍙橈紝瀵勫瓨鍣ㄤ紭鍖栦笉鐭ラ亾鏄笉鏄兘甯︽潵闈╁懡鐨勬晥鏋滐紵
路JBI-ESB錛欽BI榪欎釜鎻愪簡寰堝騫寸殑鍚嶈瘝錛岀粓浜庡湪浠婂勾澶х儹錛岀浉淇℃槑騫碕BI浠嶇劧浼?xì)鐟艟l彂灞曘?br />路JSF錛欽SF鏈夊お澶氬鎵嬩簡錛孲truts錛孲pring mvc錛岀壒鍒槸Webwork鍔犲叆Struts涔嬪悗錛屼笉榪囩浉淇SF涔熸槸鍊煎緱鎴戜滑鏈熷緟
路AJAX錛氳櫧鐒舵湁寰堝AJAX妗嗘灦鍑烘潵錛屼絾鏄痥iller綰у埆鐨勬鏋舵槸璋佸憿錛?006浼?xì)鎻檽鍚楀Q?br />路Groovy錛氱ぞ鍖虹殑鍔涢噺浣垮緱Groovy瓚婃潵瓚婃垚鐔熷拰瀹屽杽浜嗐?br />路Rails錛歊uby铏界劧鍜孞ava鏃犲叧錛屼絾鏄垜鎯沖鏁頒漢閮藉湪鍏沖績Rails銆傛瘯绔烺ails榪樻槸鎴戜滑鎵鏈熷緟鐨勪笢瑗褲?br />路Spring2.0錛歋pring 2.0鏄庡勾鍒濆氨浼?xì)鍙戝竷浜嗗Q岀浉淇′細(xì)緇х畫甯﹀姩Spring紺懼尯鐨勭媯鐑?br />
鐩鎬俊鍦ㄦ墍鏈夋妧鏈璦涓紝Java鏄?006騫寸殑鐑偣鎵鍦紝璁╂垜浠叡鍚屾湡寰?006銆?br />
2006, A Happy New Java-year and Matrix-year!聽聽



]]>
jakarta-ant鐨勪嬌鐢?java緙栬瘧宸ュ叿)http://m.tkk7.com/shooper/articles/45317.htmlShooper.JavaShooper.JavaTue, 09 May 2006 16:13:00 GMThttp://m.tkk7.com/shooper/articles/45317.htmlhttp://m.tkk7.com/shooper/comments/45317.htmlhttp://m.tkk7.com/shooper/articles/45317.html#Feedback0http://m.tkk7.com/shooper/comments/commentRss/45317.htmlhttp://m.tkk7.com/shooper/services/trackbacks/45317.html 涓錛氫粙緇嶏細(xì)
ant 鏄痡akarta鐨勪竴涓紪璇戝伐鍏鳳紝濡傛灉浣犱簡瑙inux/Unix涓嬬殑makefile浣犲氨寰堝鏄?
鐞嗚Вant鐨勭敤閫斾簡銆俛nt鏈閫傚悎浣犱嬌鐢║ltraEdit(EditPlus)鍐檍ava紼嬪簭錛岀劧鍚庝綘浣跨敤ant鍘葷紪璇戯紝鍚屾椂javadoc ,鐢熸垚涓涓猨ar,war錛屽疄鐜版枃浠剁殑copy閮藉彲浠ュ湪build.xml閫氳繃涓嶅悓鐨則ager鍘誨疄鐜幫紝榪樻槸寰堟柟渚跨殑涓涓笢涓滃己鐑堟帹鑽愭槸浣跨敤銆?br />
浜岋細(xì)涓嬭澆
浣犲彲浠ヤ粠涓嬮潰鐨勫湴鍧涓嬭澆鍒癮nt,鐩墠鐗堟湰錛?.41
http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/

涓夛細(xì)瀹夎
a:)Windows
1:瑙e帇浣犱笅杞界殑鏂囦歡錛屼細(xì)鏈変竴涓猨akarta-ant(鐗堟湰鍙風(fēng)殑)鐩綍浜х敓錛屾妸浠栨敼鍚嶄負(fù)ant
2:copy ant 鐩綍鍒頒綘闇瑕佺殑浣嶇疆銆?
3:鍦ㄧ幆澧冨彉閲忎腑娣誨姞錛欰NT_HOME=ant鐨勫畨瑁呯洰褰曪紝path涓姞$ANT_HOME$\\u0008in;娉ㄦ剰浣犲悓鏃跺繀欏誨凡緇忓畨瑁呬簡jdk,騫舵坊鍔犱簡JAVA_HOME鐨勭幆澧冨彉閲忥紝鍚屾椂鏃﹑ath涓姞浜?JAVA_HOME$\\u0008in;

b:)Linux/Unix
1:瑙e帇浣犱笅杞界殑鏂囦歡錛屼細(xì)鏈変竴涓猨akarta-ant(鐗堟湰鍙風(fēng)殑)鐩綍浜х敓錛屾妸浠栨敼鍚嶄負(fù)ant
2:copy ant 鐩綍鍒頒綘闇瑕佺殑浣嶇疆銆?
3:鍦ㄧ幆澧冨彉閲忎腑娣誨姞錛欰NT_HOME=ant鐨勫畨瑁呯洰褰曪紝path涓姞$ANT_HOME$\\u0008in;娉ㄦ剰浣犲悓鏃跺繀欏誨凡緇忓畨瑁呬簡jdk,騫舵坊鍔犱簡JAVA_HOME鐨勭幆澧冨彉閲忥紝鍚屾椂鏃﹑ath涓姞浜?JAVA_HOME$\\u0008in;瀹炵幇淇敼鐜鍙橀噺浣犻渶瑕佷慨鏀?bash_profile鏂囦歡銆?
濡備笅
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/local/jdk
PATH=$PATH:$HOME/bin:/usr/local/ant/bin:/usr/local/jdk/bin

export PATH ANT_HOME JAVA_HOME

鍥?緙栧啓build.xml
build.xml鐩稿綋Linux涓嬬殑makefile,鍏蜂綋鐨勫疄鐜伴兘鍦╞uild.xml涓疄鐜般?
鎴戠粰緇欎緥瀛愯鏄庝竴涓嬨?
build.xml
================================================================
<project name="bingo" default="build" basedir="../.." >
<!--basedir璁懼畾宸ヤ綔鐩綍-->

<property name="version" value="1.0"/>

<!-- The base directory relative to which most targets are built -->
<property name="base" value="."/>

<!-- The directory where source files are stored. -->
<property name="java.source.dir" value="bingo/src"/>
<!--浠g爜淇濆瓨璺緞-->

<!-- Destination for compiled files -->
<property name="javac.dest" value="bingo/classes"/>
<!--class淇濆瓨璺緞-->

<!-- Destination for generated jar files -->
<property name="jar.dest" value="bingo/jar"/>
<!--jar鏂囦歡淇濆瓨璺緞-->

<!-- Destination for documentation files generated or not -->
<property name="docs" value="bingo/docs"/>
<!--javadoc鏂囦歡淇濆瓨璺緞-->

<!-- Destination for javadoc generated files -->
<property name="javadoc.dest" value="bingo/docs"/>

<!-- The stem where most log4j source code is located. -->
<property name="stem" value="com/bingo"/>

<property name="base-files" value="include"/>

<!-- Original manifest.mf file before filtering. -->
<property name="manifest.src" value="bingo/build/manifest.mf"/>

<!-- Some targets needs a more precise stem. -->
<property name="BSTEM" value="${java.source.dir}/${stem}"/>

<property name="tomcat.dir" value="c:/Apache/Tomcat"/>

<property name="webapp.dir" value="${tomcat.dir}/webapps/ROOT/WEB-INF/classes"/>

<!--List all Package used in this project -->
<property name="PackageList" value="
com.bingo,
com.bingo.database,
com.bingo.dbocw,
com.bingo.util,
com.bingo.taglibs.jndi,
com.bingo.finance.database,
com.bingo.finance.entity,
com.bingo.finance.manager" />
<!--浣犵殑project涓墍鏈夌殑鍖?->

<!-- List all jar or file used in this project -->
<property name="classpath" value="${classpath};
${base-files}/tomcat/servlet.jar;
${base-files}/tomcat/webserver.jar;
${base-files}/log4j/log4j.jar;
${base-files}/log4j/log4j-core.jar" />
<!--浣犻渶瑕佺敤鍒扮殑鍖?->

<target name="init">
<tstamp />
</target>

<target name="build" depends="init">
<echo>
Building...
</echo>

<mkdir dir="${javac.dest}" />
<javac srcdir="${java.source.dir}"
destdir="${javac.dest}"
classpath="${classpath}"
debug="on"/>

</target>
<!-- ================================================================= -->
<!-- Copy class files to tomcat dir. -->
<!-- ================================================================= -->
<target name="copy" depends="build">
<copy todir="${webapp.dir}/com/bingo">
<fileset dir="${javac.dest}/com/bingo">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/util">
<fileset dir="${javac.dest}/com/bingo/util">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/database">
<fileset dir="${javac.dest}/com/bingo/database">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/dbocw">
<fileset dir="${javac.dest}/com/bingo/dbocw">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/database">
<fileset dir="${javac.dest}/com/bingo/finance/database">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/entity">
<fileset dir="${javac.dest}/com/bingo/finance/entity">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/manager">
<fileset dir="${javac.dest}/com/bingo/finance/manager">
<include name="*.class"/>
</fileset>
</copy>
</target>

<!-- ================================================================= -->
<!-- Remove all generated (compiled) class files. -->
<!-- ================================================================= -->
<target name="clean" depends="init">
<delete dir="${javac.dest}/" />
</target>

<!-- ================================================================= -->
<!-- Remove all backup files. -->
<!-- ================================================================= -->
<target name="delete" depends="init">
<delete >
<fileset dir="${java.source.dir}/com/bingo">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/util">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/database">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/database">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/entity">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/manager">
<include name="*.bak"/>
</fileset>
</delete>
</target>

<!-- ================================================================= -->
<!-- Remove the temporary manifest file, actual work is done in the -->
<!-- dependencies. -->
<!-- ================================================================= -->

<target name="prejar" depends="build">
<mkdir dir="${jar.dest}"/>
<filter token="version" value="${version}" />
<copy file="${manifest.src}" tofile="${jar.dest}/manifest.mf"
filtering="true"/>
</target>

<!-- ================================================================= -->
<!-- This target Create bingo.jar -->
<!-- ================================================================= -->
<target name="jar" depends="prejar">
<delete file="${jar.dest}/bingo.jar"/>
<jar jarfile="${jar.dest}/bingo.jar" basedir="${javac.dest}"
manifest="${jar.dest}/manifest.mf"
/>
</target>

<!-- ================================================================= -->
<!-- This target builds the javadoc files. -->
<!-- ================================================================= -->
<target name="javadoc" depends="build,init">
<mkdir dir="${javadoc.dest}" />
<javadoc sourcepath="${java.source.dir}"
destdir="${javadoc.dest}"
classpath="${classpath}"
packagenames="${PackageList}"
version="true"
protected="true"
author="true"
use="true"
windowtitle="Bingo Free Java Code Version ${version}"
header="Bingo Free Java Code${version}"
/>
</target>
</project>



]]>
jakarta-log4j鐨勪嬌鐢?java璋冭瘯宸ュ叿)http://m.tkk7.com/shooper/articles/45316.htmlShooper.JavaShooper.JavaTue, 09 May 2006 16:12:00 GMThttp://m.tkk7.com/shooper/articles/45316.htmlhttp://m.tkk7.com/shooper/comments/45316.htmlhttp://m.tkk7.com/shooper/articles/45316.html#Feedback0http://m.tkk7.com/shooper/comments/commentRss/45316.htmlhttp://m.tkk7.com/shooper/services/trackbacks/45316.html

涓錛氫粙緇?
log4j鏄痡akarta鐨勪竴涓」鐩富瑕佹槸涓轟簡璋冭瘯浣跨敤鐨勶紝涓轟簡涓嶈鏄湪紼嬪簭涓啓寰堝System.out.println();
鎴戜釜浜鴻寰楁槸涓涓笉閿欑殑宸ュ叿錛岀▼搴忚皟璇曞ソ浠ュ悗浣犲彲浠ュ叧鎺塴og4j.
浜岋細(xì)涓嬭澆
浣犲彲浠ヤ粠涓嬮潰鐨勫湴鍧涓嬭澆鍒癮nt,鐩墠鐗堟湰錛?.13
http://jakarta.apache.org/builds/jakarta-log4j/release/v1.1.3/

涓夛細(xì)瀹夎
log4j涓嶉渶瑕佸畨瑁咃紝浣犲彧闇瑕佹妸log4j.jar,log4j-core.jar鏀懼湪classpath涓綘灝卞彲浠ヤ嬌鐢ㄣ?


鍥涳細(xì)浣跨敤log4j
1:)copy log4j.jar,log4j-core.jar鍒癱lasspath涓紝鍦╰omcat4.03涓綘鍙互鎶婂畠鏀懼湪
tomcat_home\common\lib鐩綍涓嬨?
2:璁劇疆灞炴ф枃浠?
log4j闇瑕佺敤鍒頒竴涓猯og4j.properties鏂囦歡鍐呭濡備笅錛?
log4j.properties
=====================================
log4j.rootCategory=, A1
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
鏈綆鍗曠殑閰嶇疆錛屽鏋滃笇鏈涘緢澶嶆潅錛岃嚜宸辯湅鏂囨。銆?

3錛氬啓鍚姩鏂囦歡
log4j鐨勫垵濮嬪寲鏈夊嚑縐嶆柟寮忥紝鎴戜笅闈㈠彧鎻愪緵涓縐嶆柟寮忋?
InitServlet.java (涓涓猻ervlet)
==================================
import java.io.InputStream;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Locale;
import java.util.MissingResourceException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.*;
import java.io.*;

public class InitServlet extends HttpServlet {

protected String config = "/log4j.properties";

public void init() throws ServletException {
ServletContext sct = getServletContext();
System.out.println("[Log4j]: The Root Path: " + sct.getRealPath("/"));
System.out.println("[Log4j]: InitServlet init start...");
org.apache.log4j.PropertyConfigurator.configure(sct.getRealPath("/") + getServletConfig().getInitParameter("log4j"));
System.out.println("[Log4j]: InitServlet init over.");
}


public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
;
}


public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
;
}
}

4:璁劇疆web.xml
涓婇潰鍐欑殑servlet鐨勫湪AppServer鍚姩鏄氨瑕佽繍琛岋紝鎵浠ヤ綘闇瑕侀厤緗竴涓媤eb.xml
鍔犱笂濡備笅鍐呭錛?
<servlet>
<servlet-name>init</servlet-name>
<servlet-class>com.InitServlet</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>/log4j.properties</param-value>
<!--鐩稿aplication鐨勮礬寰勫湪ROOT/log4j.properties鍙傜収涓婇潰-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

5:鍦ㄧ▼搴忎腑浣跨敤log4j;
private static org.apache.log4j.Category log =
org.apache.log4j.Category.getInstance(classname);
//classname java鏂囦歡鍚峔r

log.debug(".........");
log.error(".........");
.....
鍏蜂綋鐨勮繍鐢ㄤ綘鍙互鐪媗og4j鐨勬枃妗c?



]]>
主站蜘蛛池模板: 亚洲人成片在线观看| 国产免费av一区二区三区| 亚洲精品无码专区久久久| 日韩精品视频在线观看免费| 国产又长又粗又爽免费视频| 日韩成人精品日本亚洲| 国产美女精品视频免费观看| 自拍偷自拍亚洲精品偷一| 国产伦精品一区二区三区免费迷| 国产亚洲精品欧洲在线观看| 免费观看国产小粉嫩喷水| 免费国产草莓视频在线观看黄| 亚洲欧洲日产国码高潮αv| 国产美女视频免费观看的网站| 久久久久亚洲AV无码专区网站| 两个人看的www高清免费观看| 亚洲av鲁丝一区二区三区| 四虎在线免费视频| 亚洲AV无码一区二区三区人| 麻豆成人精品国产免费| 男人j进女人p免费视频| 亚洲国产精品无码专区| 亚洲电影在线免费观看| 亚洲日韩精品国产一区二区三区| 免费jlzzjlzz在线播放视频| 国产成人免费ā片在线观看老同学 | 亚洲视频人成在线播放| 国产在线播放线91免费| 亚洲ⅴ国产v天堂a无码二区| 精品久久久久国产免费| 免费国产va视频永久在线观看| 久久久久久A亚洲欧洲AV冫| 69影院毛片免费观看视频在线| 亚洲熟妇少妇任你躁在线观看| 亚洲成aⅴ人片久青草影院| 国产精品免费看久久久 | av电影在线免费看| 久久久亚洲精品无码| 女人18毛片a级毛片免费视频| xxxxx做受大片在线观看免费| 亚洲欧洲自拍拍偷午夜色|