锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV无码一区二区乱孑伦AS,亚洲人成无码网站,337P日本欧洲亚洲大胆精品http://www.tkk7.com/yangpingyu/category/48572.htmlzh-cnFri, 20 Apr 2012 00:56:50 GMTFri, 20 Apr 2012 00:56:50 GMT60perf4j浣跨敤鍥涳紙log4j闆嗘垚鍥捐〃鏌ョ湅錛?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/04/19/375267.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Thu, 19 Apr 2012 06:12:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/04/19/375267.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/375267.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/04/19/375267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/375267.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/375267.html</trackback:ping><description><![CDATA[  <div> <p><span style="font-family: 瀹嬩綋">鍦ㄤ嬌鐢ㄤ簩榪欑紪鏂囩珷涓彁鍒幫紝鍙互浠ユ眹鎬誨艦寮忔煡鐪嬫棩蹇楋紝涔熷彲浠ラ氳繃鍥捐〃鏉ユ煡鐪嬨?/span>Perf4j<span style="font-family: 瀹嬩綋">璺?/span>log4j<span style="font-family: 瀹嬩綋">闆嗘垚鍚庯紝鍏跺疄涔熷彲浠ヤ互鍥捐〃鐨勫艦寮忔潵鏌ョ湅鎬ц兘鐘跺喌銆?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋">鎴戜滑榪欑瘒鏂囩珷榪樻槸浣跨敤鍓嶄竴綃囨枃绔犱腑鎻愬埌</span>log4j.xml<span style="font-family: 瀹嬩綋">鐨勯厤緗紝鍏朵粬閮戒竴鏍鳳紝鍙槸鍦ㄩ厤緗腑鍔犲叆浜嗗浘琛ㄧ殑閰嶇疆錛?/span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐢熸垚</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">firstBlock,secondBlock</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨勫鉤鍧囧肩殑鍥捐〃</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphExecutionTimes"</span></em></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; font-size: 10pt">              <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.perf4j.log4j.GraphingStatisticsAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- GraphType:Mean</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">錛堝鉤鍧囧鹼級</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">, <u>Min</u></span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">錛堟渶灝忓鹼級</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">, Max</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">錛堟渶澶у鹼級</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">, TPS</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">錛堟瘡縐掍簨鍔℃暟錛?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"GraphType"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"Mean"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"TagNamesToGraph"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"firstBlock,secondBlock"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphsFileAppender"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐢熸垚</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">firstBlock,secondBlock</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨?/span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">tps</span></u><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨勫浘琛?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphExecutionTPS"</span></em></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; font-size: 10pt">              <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.perf4j.log4j.GraphingStatisticsAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"GraphType"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"TPS"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"TagNamesToGraph"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"firstBlock,secondBlock"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphsFileAppender"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">璁板綍鍥捐〃鐢熸垚</span><u><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">url</span></u><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">log</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏂囦歡</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphsFileAppender"</span></em> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.FileAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"File"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"/home/perfGraphs.log"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.PatternLayout"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"ConversionPattern"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"%m%n"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left; text-indent: 21pt" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 瀹嬩綋">鍙﹀榪橀渶瑕佹敼涓涓湴鏂癸紝灝辨槸</span>CoalescingStatistics<span style="font-family: 瀹嬩綋">鐨勯厤緗細</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: silver; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"CoalescingStatistics"</span></em></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; font-size: 10pt">              <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.perf4j.log4j.AsyncCoalescingStatisticsAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!--</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">             TimeSlice</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">閰嶇疆澶氬皯鏃墮棿闂撮殧鍘誨仛涓嬈℃眹鎬誨啓鍏ユ枃浠朵腑</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">             </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">榛樿鍊兼槸</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> 30000 <u>ms</u></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">        --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"TimeSlice"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"10000"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"fileAppender"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphExecutionTimes"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"graphExecutionTPS"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New';background: silver; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p><span style="font-family: 瀹嬩綋">榛勮壊閭f閰嶇疆鐨勬剰鎬濆氨鏄妸鏃ュ織鍐欏叆鍒板浘琛ㄦ棩蹇楀幓銆?/span></p> <p><span style="font-family: 瀹嬩綋">榪愯浠g爜</span>Perf4JAppenderExample<span style="font-family: 瀹嬩綋">錛屾垜浠湪</span>perfGraphs.log<span style="font-family: 瀹嬩綋">鏂囦歡涓敓鎴愪簡鍥捐〃鐨?/span>url<span style="font-family: 瀹嬩綋">錛?/span></p> <p><a >http://chart.apis.google.com/chart?cht=lxy&chtt=Mean&chs=750x400&chxt=x,x,y&chd=t:0.0,100.0|45.2,78.1|0.0,100.0|98.1,100.0&chco=ff0000,00ff00&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0&chdl=firstBlock|secondBlock&chxr=2,0,828.6&chxl=0:|13:23:50|13:24:00|1:|Time&chxp=0,0.0,100.0|1,50&chg=50.0,10</a></p> <p> </p> <p><a >http://chart.apis.google.com/chart?cht=lxy&chtt=TPS&chs=750x400&chxt=x,x,y&chd=t:0.0,100.0|100.0,100.0|0.0,100.0|100.0,100.0&chco=ff0000,00ff00&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0&chdl=firstBlock|secondBlock&chxr=2,0,0.5&chxl=0:|13:23:50|13:24:00|1:|Time&chxp=0,0.0,100.0|1,50&chg=50.0,10</a></p> <p><span style="font-family: 瀹嬩綋">澶у鍙互鎶?/span>url<span style="font-family: 瀹嬩綋">鏀懼埌嫻忚鍣ㄨ闂笅銆?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋">涓婇潰榪欑鏂瑰紡鍛紝闇瑕佽嚜宸辯櫥褰曞埌鏈嶅姟鍣ㄤ笂錛屾壘鍒?/span>log<span style="font-family: 瀹嬩綋">鏂囦歡錛屽湪鏀懼埌嫻忚鍣ㄤ腑鏌ョ湅錛屾葷殑榪囩▼榪樻槸姣旇緝楹葷儲銆傚鏋滃ぇ瀹墮渶瑕佺洃鎺х殑宸ョ▼鏄竴涓?/span>web<span style="font-family: 瀹嬩綋">宸ョ▼鐨勮瘽錛岄偅灝辨洿鏂逛究浜嗭紝鐩存帴閰嶇疆涓涓?/span>servlet<span style="font-family: 瀹嬩綋">鏉ユ煡鐪嬨?/span>Web.xml<span style="font-family: 瀹嬩綋">鐨勯厤緗涓嬶細</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><!</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">DOCTYPE</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: teal">web-app</span> <span style="color: gray">PUBLIC</span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: teal">"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"</span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #3f7f5f">"http://java.sun.com/dtd/web-app_2_3.dtd"</span> <span style="color: teal">></span></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">web-app</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">display-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">Archetype Created Web Application</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">display-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">perf4j</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-class</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">org.perf4j.log4j.servlet.GraphingServlet</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-class</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- graphExecutionTimes</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鍜?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">graphExecutionTPS</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">灝辨槸鎴戜滑鍦?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">log4j</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">涓厤緗殑鍚嶇О</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">init-param</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">           </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">graphNames</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">           </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param-value</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">graphExecutionTimes,graphExecutionTPS</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param-value</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">init-param</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-mapping</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">perf4j</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-name</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">       </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">url-pattern</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">/perf4j</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">url-pattern</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">servlet-mapping</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">web-app</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p><span style="font-family: 瀹嬩綋">澶у鍙互鎵撳寘宸ョ▼錛屽茍鏀懼埌</span>web<span style="font-family: 瀹嬩綋">鏈嶅姟鍣ㄤ笅鍚姩錛岀劧鍚庤闂笅</span>/perf4j<span style="font-family: 瀹嬩綋">榪欎釜</span>uri<span style="font-family: 瀹嬩綋">銆?/span></p> <p>Maven<span style="font-family: 瀹嬩綋">鏈変竴涓?/span>jetty<span style="font-family: 瀹嬩綋">鎻掍歡錛屽彲浠ユ柟渚垮惎鍔?/span>web<span style="font-family: 瀹嬩綋">宸ョ▼錛屽彧瑕佸ぇ瀹跺湪</span>pom.xml<span style="font-family: 瀹嬩綋">鏂囦歡涓姞鍏ュ涓嬮厤緗細</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">plugins</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">           </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- <u>jetty</u></span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鎻掍歡</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">, </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">璁懼畾绔彛涓?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">context path--></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">           </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">plugin</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">              </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">groupId</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">org.mortbay.jetty</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">groupId</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">              </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">artifactId</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><u><span style="font-family: 'Courier New'; color: black; font-size: 10pt">jetty</span></u><span style="font-family: 'Courier New'; color: black; font-size: 10pt">-<u>maven</u>-<u>plugin</u></span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">artifactId</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">           </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">plugin</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">     </span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">plugins</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p><span style="font-family: 瀹嬩綋">鍦ㄦ帶鍒跺彴涓緭鍏ワ細</span>mvn jetty:run<span style="font-family: 瀹嬩綋">錛屽嵆鍙傜渷鍘諱簡鎵撳寘鍙戝竷錛屽緢鐪佸績鍠斻?/span></p> <p><span style="font-family: 瀹嬩綋">絎竴嬈$敤</span><a href="http://localhost:8080/perf4j">http://localhost:8080/perf4j</a><span style="font-family: 瀹嬩綋">璁塊棶鏌ョ湅鍥捐〃鐨勬椂鍊欐病鏈夌敓鎴愪換浣曚笢瑗匡紝閭f槸鍥犱負鍐呭瓨涓病鏈夋敹闆嗗埌鏈鏂扮殑鎬ц兘鏁版嵁銆傛墍浠ユ垜鍦?/span>index.jsp<span style="font-family: 瀹嬩綋">閲岃皟鐢ㄤ笅浠ヤ究浜х敓鎬ц兘鏁版嵁銆傜劧鍚庨噸鏂拌闂紝榪欎釜鏃跺欏氨鏈夊浘琛ㄧ敓鎴愪簡銆?/span></p></div><br /><a href="/Files/yangpingyu/baowu.rar">涓嬭澆宸ョ▼<br /></a><img src ="http://www.tkk7.com/yangpingyu/aggbug/375267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-04-19 14:12 <a href="http://www.tkk7.com/yangpingyu/archive/2012/04/19/375267.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>perf4j浣跨敤涓夛紙log4j闆嗘垚錛?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/04/16/374725.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Mon, 16 Apr 2012 05:59:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/04/16/374725.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/374725.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/04/16/374725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/374725.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/374725.html</trackback:ping><description><![CDATA[<div> <p><span style="font-family: 瀹嬩綋">Perf4j</span><span style="font-family: 瀹嬩綋">鏈涓昏鐨勪竴涓ソ澶勫氨鏄彲浠ヨ窡log4j鎴栬卨ogback鏉ユц兘鍒嗘瀽鍜岀洃鎺х嚎涓婅繍琛岀殑紼嬪簭銆傞泦鎴愮殑鏂瑰紡涓昏鏄細鑷畾涔塴og4j鐨刟ppenders閫氳繃鏍囧噯鐨勯厤緗姞鍏ュ埌log4j涓幓錛堝悗闈細鏈夐厤緗殑渚嬪瓙錛夈傛湁涓涓娉ㄦ剰鐨勫湴鏂瑰氨鏄渶瑕佷嬌鐢╨og4j鐨?.2.14鐗堟湰鎴栬呮洿楂樼増鏈傜敱浜庢垜涓鑸兘鏄嬌鐢╨og4j錛屾墍浠ュ浜巐ogback鐨勯泦鎴愭垜灝變笉鎻忚堪浜嗭紝鎴戣寰楀簲璇ュ樊涓嶅鐨勩?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋">Perf4j</span><span style="font-family: 瀹嬩綋">鏈閲嶈鐨刟ppender灝辨槸</span><a ><span style="font-family: 瀹嬩綋">AsyncCoalescingStatisticsAppender</span></a><span style="font-family: 瀹嬩綋">錛屽畠浼氭妸涓孌墊椂闂村唴StopWatch鐨勪俊鎭眹鎬誨埌涓涓嫭绔嬬殑GroupedTimingStatistics鏃ュ織淇℃伅錛岀劧鍚庢妸榪欎釜鐙珛鐨勪俊鎭紶緇欎笅娓哥殑appenders錛屾瘮濡俧ileappenders錛岃繖鏍峰氨鍙互鍐欏埌鏂囦歡涓幓浜嗐備篃鍙互浼犵粰per4j鐨勫叾浠栬嚜瀹氫箟appenders銆?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋">鎺ヤ笅鏉ユ垜浠湅涓涓猯og4j.xml鐨勪緥瀛愶紝鏈変竴涓檺鍒訛紝濡傛灉瑕佷嬌鐢ˋsyncCoalescingStatisticsAppender灝卞彧鑳戒嬌鐢▁ml鏂囦歡鑰屼笉鑳戒嬌鐢╬roperties鏂囦歡銆?/span></p> <p> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><?</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">xml</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">version</span><span style="color: black">=</span><em><span style="color: #2a00ff">"1.0"</span></em> <span style="color: #7f007f">encoding</span><span style="color: black">=</span><em><span style="color: #2a00ff">"UTF-8"</span></em> <span style="color: teal">?></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><!</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">DOCTYPE</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: teal">log4j:configuration</span> <span style="color: gray">SYSTEM</span> <span style="color: #3f7f5f">"log4j.dtd"</span><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">log4j:configuration</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">debug</span><span style="color: black">=</span><em><span style="color: #2a00ff">"false"</span></em> <span style="color: #7f007f">xmlns:log4j</span><span style="color: black">=</span><em><span style="color: #2a00ff">"http://jakarta.apache.org/log4j/"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!--</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">         </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">閰嶇疆鎺у埗鍙拌緭鍑?/span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">    --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"console"</span></em> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.ConsoleAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.PatternLayout"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"ConversionPattern"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"%-5p %c{1} - %m%n"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span> </p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!-- Perf4J appenders --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!--</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><span>       </span>AsyncCoalescingStatisticsAppender</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏀墮泦</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">StopWatch</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨勬棩蹇椾俊鎭茍浼犻佸埌涓嬫父鐨勬枃浠?/span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">appenders</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">銆?/span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">    --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"CoalescingStatistics"</span></em></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; font-size: 10pt">              <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.perf4j.log4j.AsyncCoalescingStatisticsAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!--</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">             TimeSlice</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">閰嶇疆澶氬皯鏃墮棿闂撮殧鍘誨仛涓嬈℃眹鎬誨啓鍏ユ枃浠朵腑</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">             </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">榛樿鍊兼槸</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"> 30000 <u>ms</u></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">        --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"TimeSlice"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"10000"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"fileAppender"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!-- </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鎶婃眹鎬葷殑</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">perf4j</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨勬棩蹇椾俊鎭啓鍒?/span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">perfStats.log</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏂囦歡涓幓</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"> --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"fileAppender"</span></em> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.FileAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"File"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"/home/perfStats.log"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.PatternLayout"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"ConversionPattern"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"%m%n"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!-- Loggers --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt"><!-- </span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">       </span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">閰嶇疆</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">perf4j logger</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">       Additivity</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">璁劇疆鎴?/span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">false</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">涓昏鍥犱負鏄笉鎯寵浠g爜榪愯鏃墮棿鐨勬棩蹇楄緭鍑虹粰涓婃父</span><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">appenders</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">錛屽嵆涓嶈鍦ㄦ帶鍒跺彴杈撳嚭銆?/span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: #3f5fbf; font-size: 10pt">    --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">logger</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.perf4j.TimingLogger"</span></em> <span style="color: #7f007f">additivity</span><span style="color: black">=</span><em><span style="color: #2a00ff">"false"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">level</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"INFO"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New';background: yellow; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"CoalescingStatistics"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New';background: yellow; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New';background: yellow; color: #3f7f7f; font-size: 10pt">logger</span><span style="font-family: 'Courier New';background: yellow; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt"><!-- </span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">       Root logger</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鎵撳嵃鎵鏈夋棩蹇楋紝浣嗕笉鍖呭惈</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">perf4j</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鐨勪俊鎭傚師鍥犳槸鍦?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">TimingLogger</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">閰嶇疆涓緗簡</span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">additivity</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">涓?/span><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">false</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: #3f5fbf; font-size: 10pt">    --></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">root</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">level</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"INFO"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender-ref</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">ref</span><span style="color: black">=</span><em><span style="color: #2a00ff">"console"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">root</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">log4j:configuration</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p> </p> <p> </p> <p><span style="font-family: 瀹嬩綋">榛勮壊鑳屾櫙鏄痯erf4j鐨勯厤緗俊鎭傚叾浠栭兘鏄痩og4j鐨勫熀鏈厤緗備笅闈㈡槸嫻嬭瘯perf4j涓巐og4j闆嗘垚鐨勪唬鐮併?/span></p> <p style="text-align: left" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">package</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> com.baowu.perf4j;</span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> org.apache.log4j.Logger;</span></p> <p style="text-align: left" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> org.perf4j.StopWatch;</span></p> <p style="text-align: left" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">import</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> org.perf4j.log4j.Log4JStopWatch;</span></p> <p style="text-align: left" align="left"> </p> <p style="text-align: left" align="left"><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong> <strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">class</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Perf4JAppenderExample {</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">public</span></strong> <strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">static</span></strong> <strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">void</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> main (String[] args) </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">throws</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Exception {</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        Logger rootLogger = Logger.<em>getRootLogger</em>();</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">for</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> (</span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">int</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> i = 0; i < 10; i++) {</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">// Log4JStopWatch</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">榛樿浣跨敤</span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">org.perf4j.TimingLogger</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">榪欎釜綾?/span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            StopWatch stopWatch = </span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">new</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt"> Log4JStopWatch();</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">//</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">妯℃嫙浠g爜榪愯鏃墮棿</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            Thread.<em>sleep</em>((</span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">long</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt">) (Math.<em>random</em>() * 1000L));</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: #3f7f5f; font-size: 10pt">//</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鎵撳嵃鍒版帶鍒跺彴</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            rootLogger.info(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"Normal logging messages only go to the console"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            stopWatch.lap(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"firstBlock"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            Thread.<em>sleep</em>((</span><strong><span style="font-family: 'Courier New'; color: #7f0055; font-size: 10pt">long</span></strong><span style="font-family: 'Courier New'; color: black; font-size: 10pt">) (Math.<em>random</em>() * 2000L));</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            stopWatch.stop(</span><span style="font-family: 'Courier New'; color: #2a00ff; font-size: 10pt">"secondBlock"</span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">);</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        }</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">    }</span></p> <p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">}</span></p> <p> </p> <p><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">榪愯浠g爜銆?/span></p> <p><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鎺у埗鍙拌緭鍑猴細</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p><span style="font-family: 'Courier New'; color: black; font-size: 10pt">INFO root - Normal logging messages only go to the console</span></p> <p> </p> <p><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏂囦歡杈撳嚭錛?/span></p> <p><span style="font-family: 'Courier New'; color: black; font-size: 10pt"><img border="0" alt="" src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j3-1.jpg" width="558" height="184" /><br /></span></p> <p> </p> <p><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">杈撳嚭鏍煎紡涔熷彲浠ユ敼鎴?/span><span style="font-family: 'Courier New'; color: black; font-size: 10pt">CSV</span><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏍煎紡銆傞厤緗細</span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"fileAppender"</span></em> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"org.apache.log4j.FileAppender"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"File"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"/home/perfStats.log"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">class</span><span style="color: black">=</span><em><span style="color: #2a00ff">"</span><strong><span style="color: red">org.apache.log4j.PatternLayout</span></strong><span style="color: #2a00ff">"</span></em><span style="color: teal">></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">            </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"><</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">param</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: #7f007f">name</span><span style="color: black">=</span><em><span style="color: #2a00ff">"ConversionPattern"</span></em> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">"%m%n"</span></em><span style="color: teal">/></span></span></p> <p style="text-align: left" align="left"><span style="font-family: 'Courier New'; color: black; font-size: 10pt">        </span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">layout</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left; text-indent: 21pt" align="left"><span style="font-family: 'Courier New'; color: teal; font-size: 10pt"></</span><span style="font-family: 'Courier New'; color: #3f7f7f; font-size: 10pt">appender</span><span style="font-family: 'Courier New'; color: teal; font-size: 10pt">></span></p> <p style="text-align: left; text-indent: 21pt" align="left"><strong><em><span style="font-family: 'Courier New'; color: red; font-size: 10pt">org.apache.log4j.PatternLayout</span></em></strong><strong><em><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鏀規垚</span></em></strong><strong><em><span style="font-family: 'Courier New'; color: red; font-size: 10pt">org.perf4j.log4j.StatisticsCsvLayout</span></em></strong><strong><em><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鍗沖彲銆?/span></em></strong></p> <p style="text-align: left; text-indent: 21pt" align="left"><strong><em><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">鍏蜂綋鐨勫弬鏁拌鏌ョ湅</span></em></strong><strong><em><span style="font-family: 'Courier New'; color: red; font-size: 10pt">api</span></em></strong><strong><em><span style="font-family: 瀹嬩綋; font-size: 10pt; courier: ">銆?br /><strong><em><font size="2"><a href="/Files/yangpingyu/baowu.rar"><strong><em><font size="2">涓嬭澆宸ョ▼</font></em></strong></a></font></em></strong><br /><br /><br /></span></em></strong></p></div><img src ="http://www.tkk7.com/yangpingyu/aggbug/374725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-04-16 13:59 <a href="http://www.tkk7.com/yangpingyu/archive/2012/04/16/374725.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>perf4j浣跨敤浜?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374676.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Sun, 15 Apr 2012 11:35:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374676.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/374676.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/374676.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/374676.html</trackback:ping><description><![CDATA[<div> <p><a href="../archive/2012/04/15/374217.html">Perf4j<span style="font-family:瀹嬩綋;"><span>浣跨敤涓</span></span></a><span style="font-family:瀹嬩綋;">涓昏婕旂ず浜嗘ц兘鐩戞帶鐨勬棩蹇楃洿鎺ユ墦鍗板湪鏍囧噯杈撳嚭嫻併傞偅涔堜嬌鐢ㄤ簩鍛㈠垯涓昏鏉ユ紨紺烘庝箞鏉ュ垎鏋愭墦鍗板嚭鏉ョ殑鏃ュ織鏂囦歡銆?/span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">鐢變簬鎴戜滑榪樻病鏈夎窡</span>log4j<span style="font-family:瀹嬩綋;">闆嗘垚錛屾棩蹇楁枃浠舵墦鍗板湪鏍囧噯杈撳嚭嫻侊紝鎴戜滑闇瑕佹妸鏍囧噯杈撳嚭嫻侀噸瀹氬悜鍒?/span>times.log<span style="font-family:瀹嬩綋;">鏂囦歡涓傞噸瀹氬悜鏈変袱縐嶆柟寮忥細鐩存帴</span>copy<span style="font-family:瀹嬩綋;">鍒版枃浠朵腑錛屾垨鑰呭湪</span>eclipse<span style="font-family:瀹嬩綋;">閲屾寚瀹氫笅杈撳嚭鏂囦歡銆傛垜涓昏鏄敤</span>eclipse<span style="font-family:瀹嬩綋;">鎸囧畾杈撳嚭鏂囦歡銆?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-1.jpg" alt="" width="294" border="0" height="164" /></span></p> <p> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-2.jpg" alt="" width="662" border="0" height="496" /></span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-3.jpg" alt="" width="661" border="0" height="454" /></span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">鐒跺悗榪愯浠g爜錛?/span><a href="../archive/2012/04/15/374217.html">Perf4j<span style="font-family:瀹嬩綋;"><span>浣跨敤涓</span></span></a><span style="font-family:瀹嬩綋;">鐨?/span>Example.java<span style="font-family:瀹嬩綋;">錛夛紝鎺у埗鍙頒細鍦ㄧ涓鍙ヨ瘽涓墦鍑?/span>[Console output redirected to file:E:\yangpingyu\work\times.log]<span style="font-family:瀹嬩綋;">錛岃繖鏍瘋繍琛岀殑緇撴灉浼氬悓鏃舵墦鍗板湪鏂囦歡涓拰鏍囧噯杈撳嚭涓?/span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">鏈変簡</span>times.log<span style="font-family:瀹嬩綋;">錛屾垜浠氨鍙互瀵規棩蹇楁枃浠惰繘琛屽垎鏋愶紝浠ユ壘鍑烘湁闂鐨勪唬鐮併?/span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">鍒嗘瀽鏃ュ織鍛戒護錛?/span></p> <p><span>E:\yangpingyu\work>java -jar perf4j-0.9.16.jar times.log</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-5.jpg" alt="" width="874" border="0" height="457" /></span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">浠?/span>csv<span style="font-family:瀹嬩綋;">鐨勬牸寮忔潵鏌ョ湅緇撴灉錛屽懡浠ゅ涓嬶細</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">java -jar perf4j-0.9.16.jar -f csv times.log</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-6.jpg" alt="" width="867" border="0" height="331" /></span></p> <p> </p> <p><span style="font-family:瀹嬩綋;">浠ヤ笂閮芥槸浠ユ枃鏈殑鏍煎紡榪涜杈撳嚭錛屼絾鏂囨湰娌℃湁鍥捐〃鏇村叿鏈夎〃杈懼姏銆傛墍浠ユ妸緇撴灉浠ュ浘琛ㄥ艦寮忚緭鍑烘槸蹇呬笉鍙皯錛屽垢濂?/span>perf4j<span style="font-family:瀹嬩綋;">涔熸敮鎸侊紝鍛戒護濡備笅錛?/span></p> <pre>java -jar perf4j-0.9.16.jar --graph perfGraphs.html times.log</pre> <p><span style="font-family:瀹嬩綋;">鎵ц鍛戒護鍚庯紝鍦ㄦ帶鍒跺彴杈撳嚭鐩稿簲鐨勭粺璁′俊鎭紝鐩稿簲鐨勫湪紓佺洏涓婁篃鐢熸垚浜嗕竴涓?/span>html<span style="font-family:瀹嬩綋;">錛?/span>html<span style="font-family:瀹嬩綋;">閲屽寘鍚鉤鍧囧煎浘琛ㄥ拰</span>tps<span style="font-family:瀹嬩綋;">鍥捐〃銆?/span></p> <p><html></p> <p><span><head><title>Perf4J Performance Graphs</title></head></span></p> <p><body></p> <p><span><br/><br/><img src="http://chart.apis.google.com/chart?cht=lxy&chtt=Mean&chs=750x400&chxt=x,x,y&chd=t:0.0,50.0,100.0|56.3,60.1,6.0|0.0,50.0|88.5,94.5|50.0,100.0|43.2,7.2|0.0,50.0,100.0|71.8,57.4,8.0|0.0,50.0,100.0|100.0,61.2,59.6|0.0,50.0,100.0|63.9,62.0,18.7|0.0,50.0,100.0|34.4,72.1,30.1&chco=ff0000,00ff00,0000ff,00ffff,ff00ff,ffff00,000000&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0|d,0000ff,2,-1,5.0|d,00ffff,3,-1,5.0|d,ff00ff,4,-1,5.0|d,ffff00,5,-1,5.0|d,000000,6,-1,5.0&chdl=codeBlock1|codeBlock2.failure|codeBlock2.success|codeBlock3|codeBlock4|codeBlock5|codeBlock6&chxr=2,0,748.5&chxl=0:|18:12:00|18:12:30|18:13:00|1:|Time&chxp=0,0.0,50.0,100.0|1,50&chg=50.0,10"/></span></p> <p><span><br/><br/><img src="http://chart.apis.google.com/chart?cht=lxy&chtt=TPS&chs=750x400&chxt=x,x,y&chd=t:0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0|27.3,63.6|50.0,100.0|36.4,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|27.3,100.0,9.1&chco=ff0000,00ff00,0000ff,00ffff,ff00ff,ffff00,000000&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0|d,0000ff,2,-1,5.0|d,00ffff,3,-1,5.0|d,ff00ff,4,-1,5.0|d,ffff00,5,-1,5.0|d,000000,6,-1,5.0&chdl=codeBlock1|codeBlock2.failure|codeBlock2.success|codeBlock3|codeBlock4|codeBlock5|codeBlock6&chxr=2,0,0.4&chxl=0:|18:12:00|18:12:30|18:13:00|1:|Time&chxp=0,0.0,50.0,100.0|1,50&chg=50.0,10"/></span></p> <p></body></html></p> <p><span style="font-family:瀹嬩綋;">浠ヤ笂鏄?/span>html<span style="font-family:瀹嬩綋;">鐨勫唴瀹癸紝閲岄潰鏈閲嶈鐨勪俊鎭氨鏄袱涓?/span>img<span style="font-family:瀹嬩綋;">鏍囩錛岄噷闈㈠叿浣撶殑鍥劇墖鏄?/span>google chart api<span style="font-family:瀹嬩綋;">鐢熸垚銆傚彲浠ユ墦寮</span>html<span style="font-family:瀹嬩綋;">鐩存帴鏌ョ湅鍥捐〃銆?/span></p> <p><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-7.png" alt="" width="750" border="0" height="400" /></p> <p><img src="http://www.tkk7.com/images/blogjava_net/yangpingyu/perf4j2-9.png" alt="" width="750" border="0" height="400" /></p> <p><span style="font-family:瀹嬩綋;">濡傛灉鎯寵鐪嬫洿璇︾粏鐨勫弬鏁幫紝鍙互浣跨敤</span>—help<span style="font-family:瀹嬩綋;">鏉ユ煡鐪嬨?/span>java -jar perf4j-0.9.16.jar –help<span style="font-family: 瀹嬩綋;">銆?/span></p> </div> <img src ="http://www.tkk7.com/yangpingyu/aggbug/374676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-04-15 19:35 <a href="http://www.tkk7.com/yangpingyu/archive/2012/04/15/374676.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>perf4j浣跨敤涓http://www.tkk7.com/yangpingyu/archive/2012/04/15/374217.htmlyangpingyuyangpingyuSun, 15 Apr 2012 02:44:00 GMThttp://www.tkk7.com/yangpingyu/archive/2012/04/15/374217.htmlhttp://www.tkk7.com/yangpingyu/comments/374217.htmlhttp://www.tkk7.com/yangpingyu/archive/2012/04/15/374217.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/374217.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/374217.html

濡傛灉澶у浣跨敤鐨勬槸maven宸ョ▼錛岄偅涔堢幇鍦?/span>pom鏂囦歡涓姞鍏?/span>perf4j鐨勪緷璧栥?/span>

<dependency>

<groupId>org.perf4j</groupId>

<artifactId>perf4j</artifactId>

<version>0.9.16</version>

<scope>compile</scope>

</dependency>

濡傛灉鐢ㄧ殑鏄櫘閫氬伐紼嬶紝閭d箞鐩存帴涓嬭澆jar鍖呮斁鍏?/span>lib鐩綍涓嬪嵆鍙?/span>

 

 

渚嬪瓙錛?/span>

package com.baowu.per4j;

 

import org.perf4j.LoggingStopWatch;

import org.perf4j.StopWatch;

 

public class Example1 {

 

    public static void main(String[] args) throws InterruptedException{

       method1();

       method2();

       method3();

    }

   

    /**

     * 鐩戞帶涓澶勪唬鐮佺ず渚?/span>

     * @throws InterruptedException

     */

    private static void method1() throws InterruptedException{

       //鍒涘緩涓涓洃鎺у璞★紝榪欓噷浣跨敤LoggingStopWatch錛屽畠鏄妸緇撴灉鐩存帴杈撳嚭鍒版帶鍒跺彴銆傛垜浠篃鍙互

       //浣跨敤StopWatch鐨勫叾浠栧瓙綾伙紝姣斿錛?/span>Log4JStopWatch錛?/span>CommonsLogStopWatch銆備笉榪囪繖浜涘瓙綾婚渶

       //瑕佸伐紼嬩嬌鐢ㄦ棩蹇楁鏋?/span>

       StopWatch stopWatch = new LoggingStopWatch("codeBlock1");

 

       //榪欓噷灝辨槸涓浜涢渶瑕佺洃鎺х殑浠g爜錛屾垜浠懡鍚嶄負codeBlock1

       //浣跨敤綰跨▼浼戠湢鏄負浜嗘ā鎷熶唬鐮佹墽琛屾椂闂?/span>

       Thread.sleep((long)(Math.random() * 1000L));

 

       //鍋滄璁$畻浠g爜鎬ц兘

       stopWatch.stop();

    }

   

    /**

     * 涓涓柟娉曞鍑轟唬鐮佺洃鎺?/span>

     * @throws InterruptedException

     */

    private static void method2() throws InterruptedException{

       StopWatch stopWatch = new LoggingStopWatch();

       Thread.sleep((long)(Math.random() * 1000L));

       stopWatch.lap("codeBlock3");

       Thread.sleep((long)(Math.random() * 1000L));

       stopWatch.lap("codeBlock4");

       Thread.sleep((long)(Math.random() * 1000L));

       stopWatch.lap("codeBlock5");

       Thread.sleep((long)(Math.random() * 1000L));

       stopWatch.stop("codeBlock6");

    }

   

    /**

     * stop鏂規硶鍙互鍔犲叆涓浜涜鏄庝俊鎭?/span>

     */

    private static void method3(){

       StopWatch stopWatch = new LoggingStopWatch();

       try {

           // the code block being timed - this is just a dummy example

           long sleepTime = (long)(Math.random() * 1000L);

           Thread.sleep(sleepTime);

           if (sleepTime > 500L) {

               throw new Exception("Throwing exception");

           }

           stopWatch.stop("codeBlock2.success", "Sleep time was < 500 ms");

       } catch (Exception e) {

           stopWatch.stop("codeBlock2.failure", "Exception was: " + e);

       }

    }

}

 

榪愯緇撴灉錛?/span>

start[1334457619937] time[355] tag[codeBlock1]

start[1334457620296] time[152] tag[codeBlock3]

start[1334457620453] time[138] tag[codeBlock4]

start[1334457620593] time[598] tag[codeBlock5]

start[1334457621187] time[700] tag[codeBlock6]

start[1334457621890] time[619] tag[codeBlock2.failure] message[Exception was: java.lang.Exception: Throwing exception]



]]>
Perf4j綆浠?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374215.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Sun, 15 Apr 2012 02:15:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374215.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/374215.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/04/15/374215.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/374215.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/374215.html</trackback:ping><description><![CDATA[<div> <p><span style="font-family: 瀹嬩綋;"></span>Perf4j<span style="font-family: 瀹嬩綋;">涓昏鐨勭敤閫旀槸璁¢噺浠g爜鎬ц兘鍜屽垎鏋愭ц兘鏁版嵁銆?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋;">涓轟粈涔堣浣跨敤榪欎釜宸ュ叿鍛紵鎴戜滑鍙互鑱旀兂涓嬫渶鏃╂湡</span>java<span style="font-family: 瀹嬩綋;">寮鍙戣呰皟璇曚唬鐮佷嬌鐢ㄧ殑鏂瑰紡錛屼互鍓嶆病鏈夋棩蹇楁鏋訛紝閭?/span>java<span style="font-family: 瀹嬩綋;">寮鍙戝氨浣跨敤</span>System.out.println()<span style="font-family: 瀹嬩綋;">鏉ヨ緭鍑鴻嚜宸辨兂鏌ョ湅鐨勫彉閲忋備絾鏄繖鏍烽」鐩笂綰跨殑璇濓紝灝辮鍘繪帀榪欎簺鎵撳嵃璇彞浠ュ噺灝戞ц兘褰卞搷銆傞偅涓囦竴鍦ㄧ嚎涓婂嚭闂浜嗭紝璋冭瘯鍝噷鍑洪棶棰樺氨寰堥夯鐑︼紝鍥犱負娌℃湁杈撳嚭鐨勬棩蹇楀彲鏌ャ傛墍浠ュ悗鏉ユ湁浜哄紑鍙戜簡鏃ュ織妗嗘灦錛岄氳繃鏃ュ織綰у埆鎺у埗鏃ュ織鐨勮緭鍑恒?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋;">綾諱技鐨勶紝濡傛灉娌℃湁</span>perf4j<span style="font-family: 瀹嬩綋;">錛屾垜浠湪鏌ョ湅浠g爜榪愯鏃墮棿鐨勮瘽鍙互鐢ㄤ互涓嬩唬鐮佹潵瀹炵幇錛?/span></p> <p>long start = System.currentTimeMillis();</p> <p>// execute the block of code to be timed</p> <p><span>System.out.println("ms for block n was: " + (System.currentTimeMillis() - start));</span></p> <p><span style="font-family: 瀹嬩綋;">榪欑鏂瑰紡鏈夊嚑涓己鐐癸細</span></p> <p style="margin-left: 18pt; text-indent: -18pt;"><span>1銆?nbsp;</span><span style="font-family: 瀹嬩綋;">榪欑鏂瑰紡杈撳嚭鍐呭姣旇緝鍗曚竴錛屽氨鏄唬鐮佹葷殑榪愯鏃墮棿銆備絾鏄垜浠唬鐮侀渶瑕佹煡鐪嬬殑鎬ц兘鎸囨爣鏈夋洿澶氾紝姣斿鎬葷殑騫沖潎鍊鹼紝鏈灝忓鹼紝鏈澶у鹼紝</span>tps<span style="font-family: 瀹嬩綋;">絳夌瓑銆?/span></p> <p style="margin-left: 18pt; text-indent: -18pt;"><span>2銆?nbsp;</span><span style="font-family: 瀹嬩綋;">涔熻鎴戜滑鐨勪唬鐮佸湪綰夸笂榪愯錛屾垜浠兂鎶婅繖浜涘奸氳繃鍥捐〃鐨勫艦寮忓睍紺哄嚭鏉ャ傛垨鑰呮妸榪欎簺鍐呭閫氳繃</span>jmx<span style="font-family: 瀹嬩綋;">杈撳嚭銆?/span></p> <p style="margin-left: 18pt; text-indent: -18pt;"><span>3銆?nbsp;</span><span style="font-family: 瀹嬩綋;">鍙﹀錛屾垜浠彲鑳芥妸</span>perf4j<span style="font-family: 瀹嬩綋;">璺?/span>log4j<span style="font-family: 瀹嬩綋;">錛?/span>slf4j<span style="font-family: 瀹嬩綋;">絳夋棩蹇楁鏋跺拰鏃ュ織闂ㄩ潰緋葷粺鏁村悎璧鋒潵銆?/span></p> <p> </p> <p><span style="font-family: 瀹嬩綋;">鍩轟簬浠ヤ笂榪欎簺闂錛屾墍浠ュ紑婧愮ぞ鍖哄氨鍑虹幇浜?/span>perf4j<span style="font-family: 瀹嬩綋;">錛堜漢澶氬姏閲忓ぇ錛岀ぞ鍖虹殑鍔涢噺灝辨槸寮哄ぇ錛夈?/span></p> <p>Perf4j<span style="font-family: 瀹嬩綋;">涓浜涚壒鎬э細</span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span><span style="font-family: 瀹嬩綋;">綆鍗曠殑鍋滄鏌ョ湅鏈哄埗鏉ヨ綆楄鍙ユ椂闂存秷鑰楄緭鍑恒?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span><span style="font-family: 瀹嬩綋;">鍛戒護琛岃В鏋?/span>log<span style="font-family: 瀹嬩綋;">鏂囦歡浜х敓姹囨繪暟鎹拰鍥捐〃銆?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span><span style="font-family: 瀹嬩綋;">綆鍗曠殑闆嗘垚鏃ュ織妗嗘灦鍜岄棬闈㈡鏋躲?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span><span style="font-family: 瀹嬩綋;">鑷畾涔?/span>log4j<span style="font-family: 瀹嬩綋;">鍜?/span>logback<span style="font-family: 瀹嬩綋;">鐨?/span>appenders<span style="font-family: 瀹嬩綋;">鏉ヤ駭鐢熸暟鎹拰鍥捐〃銆?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span><span style="font-family: 瀹嬩綋;">閫氳繃</span>jmx<span style="font-family: 瀹嬩綋;">鏌ョ湅鎬ц兘鎸囨爣錛屽茍鏍規嵁闃堝煎彂閫佹秷鎭?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span>Web<span style="font-family: 瀹嬩綋;">宸ョ▼鍙互閫氳繃</span>servlet<span style="font-family: 瀹嬩綋;">鏉ヨ緭鍑烘ц兘鎸囨爣銆?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span>Perf4j<span style="font-family: 瀹嬩綋;">鍙互鍜?/span>aop<span style="font-family: 瀹嬩綋;">絳夊垏闈㈡鏋舵暣鍚堣搗鏉ヨ緭鍑烘ц兘鎸囨爣銆?/span></p> <p style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: Wingdings;">l </span>Perf4j<span style="font-family: 瀹嬩綋;">鏄竴涓彲鎵╁睍鐨勬灦鏋勩?/span></p> </div><img src ="http://www.tkk7.com/yangpingyu/aggbug/374215.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-04-15 10:15 <a href="http://www.tkk7.com/yangpingyu/archive/2012/04/15/374215.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Maven涓巉indbugshttp://www.tkk7.com/yangpingyu/archive/2012/04/14/374180.htmlyangpingyuyangpingyuSat, 14 Apr 2012 10:55:00 GMThttp://www.tkk7.com/yangpingyu/archive/2012/04/14/374180.htmlhttp://www.tkk7.com/yangpingyu/comments/374180.htmlhttp://www.tkk7.com/yangpingyu/archive/2012/04/14/374180.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/374180.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/374180.html

鍏徃鏈榪戜弗鎶撹蔣浠惰川閲忛棶棰橈紝鎴戞娊絀轟簡瑙d簡涓嬫彁楂樹唬鐮佽川閲忕殑涓浜涘紑婧愬伐鍏楓傚叾涓竴涓氨鏄?/span>findbugs銆備嬌鐢?/span>findbugs鏈夊緢澶氭柟寮忥紝姣斿錛氬畨瑁?/span>eclipse findbugs鎻掍歡錛岄氳繃maven璋冪敤鐢熸垚鎶ュ憡銆備粖澶╀富瑕佹紨紺轟笅maven涓?/span>findbugs闆嗘垚銆?/span>

 

絎竴姝ワ細涓嬭澆maven錛屾垜浣跨敤鐨勬槸maven3銆傛妸maven鐨勫懡浠ゅ姞鍏?/span>PATH鐜鍙橀噺銆?/span>

絎簩姝ワ細鍒涘緩涓涓櫘閫氱殑maven java宸ョ▼銆傚懡浠ゅ涓嬶細mvn archetype:maven-archetyp-quickstart –DgroupId=com.tianya –DartifactId=baowu銆傚鏋滄甯告墽琛岀殑璇濅細鐢熸垚濡備笅緇撴瀯鐨勪竴涓伐紼嬨?/span>

絎笁姝ワ細鎴戜滑鐪嬩笅pom鏂囦歡

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.tianya</groupId>

    <artifactId>baowu</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>war</packaging>

 

    <!--閰嶇疆鎻掍歡鏉ユ簮 -->

    <pluginRepositories>

       <pluginRepository>

           <id>Codehaus repository</id>

           <url>http://repository.codehaus.org/</url>

       </pluginRepository>

    </pluginRepositories>

   

    <build>

       <plugins>

           <plugin>

              <groupId>org.codehaus.mojo</groupId>

              <artifactId>findbugs-maven-plugin</artifactId>

              <version>2.3.2</version>

              <configuration>

                  <!-- <configLocation>${basedir}/springside-findbugs.xml</configLocation> -->

                  <threshold>High</threshold>

                  <effort>Default</effort>

                  <findbugsXmlOutput>true</findbugsXmlOutput>

                   <!-- findbugs xml杈撳嚭璺緞-->         <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>

              </configuration>

           </plugin>

       </plugins>

    </build>

</project>

 

鎴戞潵瑙i噴涓?/span>xml閰嶇疆錛?/span>

閰嶇疆鎻掍歡涓嬭澆鍦板潃

<!--閰嶇疆鎻掍歡鏉ユ簮 -->

    <pluginRepositories>

       <pluginRepository>

           <id>Codehaus repository</id>

           <url>http://repository.codehaus.org/</url>

       </pluginRepository>

    </pluginRepositories>

 

鐢變簬maven鏍稿績鍋氱殑浜嬫儏閮芥槸鎶借薄鐨勬瀯寤鴻繃紼嬶紝寰堝瀹為檯鐨勫伐浣滈兘鏄叿浣撶殑鎻掍歡鏉ュ疄鐜般傛墍浠ュ緢鏄劇劧錛?/span>maven浠ユ彃浠剁殑鏂瑰紡闆嗘垚findbugs銆?/span>

<plugin>

              <groupId>org.codehaus.mojo</groupId>

              <artifactId>findbugs-maven-plugin</artifactId>

              <version>2.3.2</version>

              <configuration>

                  <!-- <configLocation>${basedir}/springside-findbugs.xml</configLocation> -->

                  <!-- findbugs xml杈撳嚭-->                   <findbugsXmlOutput>true</findbugsXmlOutput>

                   <!-- findbugs xml杈撳嚭璺緞-->         <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>

              </configuration>

           </plugin>

 

澶у娉ㄦ剰鍒頒簡findbugs鎻掍歡閲岋紝鎴戞敞閲婃帀浜嗕竴鍙ヨ瘽錛屽叾瀹炶繖鍙ヨ瘽灝辨槸鍙互浣跨敤鑷繁鐨?/span>fingbugs閰嶇疆鏉ュ仛媯鏌ャ傛垜鐢ㄧ殑鏄?/span>springside鐨勪竴涓?/span>xml鏂囦歡銆?/span>

 

絎洓姝ワ細閰嶇疆濂界浉鍏蟲枃浠朵箣鍚庯紝鎺ヤ笅鏉ュ氨鏄墽琛岀浉鍏沖懡浠や簡銆?/span>

mvn compile findbugs:findbugs鐢熸垚鎶ュ憡銆傛姤鍛婄敓鎴愮殑鍦板潃灝辨槸${欏圭洰鏍圭洰褰?/span>}/target/site銆備篃鍙互閫氳繃mvn findbugs:gui gui鐣岄潰鏌ョ湅findbugs鐨?/span>report銆?/span>



]]>
瀛︿範涔﹀崟鍜岃祫鏂?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369530.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Tue, 07 Feb 2012 05:45:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369530.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/369530.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/369530.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/369530.html</trackback:ping><description><![CDATA[<div> <p style="text-indent:21.0pt"><span style="font-family:瀹嬩綋;">浠庡鏍℃瘯涓氬埌宸ヤ綔宸茬粡</span>2<span style="font-family:瀹嬩綋;">騫村崐鏃墮棿浜嗭紝鍦ㄨ眴鐡c佸綋褰撱佷含涓滃拰浜氱帥閫婁笂鍏蟲敞浜嗗緢澶氫功綾嶏紝涔熸瘮杈冨枩嬈㈤涗功搴椼傚綋鐒朵拱浜嗗緢澶氬拰鐪嬩簡閮ㄥ垎錛岃嚜宸卞閲屽緢澶氫功榪樻病鐪嬶紙浜虹被鐨勬儼鎬э紝鍊熷彛錛夈傚湪榪欎袱騫村崐鏃墮棿鍐咃紝璧頒簡涓浜涘集璺紝鎵浠ユ兂鎬葷粨涓嬭嚜宸辯殑瀛︿範鐢熸動銆?/span></p> <p style="text-indent:21.0pt"> </p> <p style="text-indent:21.0pt"><span style="font-family:瀹嬩綋;">姣曚笟鐨勬椂鍊欏幓浜嗕竴瀹跺垱涓氬瀷鐨勪簰鑱旂綉鍏徃錛屽湪榪欏鍏徃娌℃湁浠諱綍鍩硅鏈哄埗錛屼換浣曚笢瑗塊兘闇瑕侀潬鑷繁鏉ユ崏鎽搞傛牴鎹伐浣滈渶瑕佺湅浜?/span>struts2<span style="font-family:瀹嬩綋;">錛?/span>spring<span style="font-family:瀹嬩綋;">錛?/span>hibernate<span style="font-family:瀹嬩綋;">錛?/span>jstl<span style="font-family:瀹嬩綋;">錛?/span>jsp<span style="font-family:瀹嬩綋;">錛?/span>servlet<span style="font-family:瀹嬩綋;">絳変竴浜?/span>J2EE<span style="font-family:瀹嬩綋;">鐩稿叧緇勪歡鐨勪功鍜岃祫鏂欍備粎闈犺繖浜涙妧鏈篃鑳芥惌寤哄嚭涓涓鍚堜駭鍝佺殑緗戠珯銆傛帴瑙﹀埌</span>infoq<span style="font-family:瀹嬩綋;">緗戠珯涔嬪悗錛屼簡瑙d簡涓浜涘ぇ鍨嬬綉绔欑殑鏋舵瀯鍙樿縼絳夋妧鏈紝鍦ㄤ竴騫寸殑鏃墮棿鍐呬笉鏂拷瀵昏繖浜涗笉絎﹀悎鑷繁鐩墠闇瑕佺殑鎶鏈紝鍏呭叾閲忓氨鏄紑闃斾簡鑷繁鎶鏈殑鐪肩晫銆傜敱浜庝簰鑱旂綉鍏徃鐨勪竴浜涘姡鍔匡紝瀵艱嚧鎴戞湁浜嗚煩妲界殑鎯蟲硶錛屼絾鏄嚭鍘婚潰璇曚箣鍚庯紝鎵嶇煡閬撹嚜宸辨槸浜曞簳涔嬭洐銆傝嚜宸變篃綆楃儹鐖辨妧鏈紝涔熺畻鍔姏瀛︿範鍜岀爺絀剁殑錛岃嚜宸卞弽鎬濆拰鎬葷粨浜嗕竴涓嬶細<strong><span style="color:red">涓嶆敞閲嶅熀紜銆?/span></strong></span></p> <p style="text-indent:21.0pt"> </p> <p style="text-indent:21.0pt"><span style="font-family:瀹嬩綋;">閭d箞瀛︿範浠涔堟墠綆楀熀紜鍛紵鎴戜富瑕佸垪涓句笅鎴戠殑瀛︿範涔﹀崟錛?/span></p> <p><span>         </span></p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">璁$畻鏈哄熀紜錛氫換浣曡蔣浠惰繍琛岀殑鍩虹銆?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>娣卞叆鐞嗚В璁$畻鏈虹郴緇燂紙淇鐗堬級</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>璁$畻鏈虹粍鎴愬師<span>鐞?/span></span></span></a></p> <p> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">鎿嶄綔緋葷粺錛氱‖浠剁鐞嗙殑杞歡錛屾垜浠殑搴旂敤杞歡涓昏渚濊禆浜庢搷浣滅郴緇熴?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>楦熷摜鐨?/span>Linux<span style="font-family:瀹嬩綋;">縐佹埧鑿?/span> <span style="font-family:瀹嬩綋;">鍩虹瀛︿範綃?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>鎿嶄綔緋葷粺鍘熺悊</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Linux<span style="font-family:瀹嬩綋;"><span>鍐呮牳璁捐涓庡疄鐜?/span></span></a></p> <p> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">鏁版嵁緇撴瀯錛氳蔣浠?/span>=<span style="font-family:瀹嬩綋;">鏁版嵁緇撴瀯</span>+<span style="font-family:瀹嬩綋;">綆楁硶銆傚叾瀹炴搷浣滅郴緇熻蔣浠跺拰搴旂敤杞歡閮藉湪澶ч噺搴旂敤鏁版嵁緇撴瀯銆?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>澶ц瘽鏁版嵁緇撴瀯</span></span></a></p> <p style="margin-left:21.0pt"> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">緗戠粶錛氱郴緇熶竴瀹氶渶瑕佷笌澶栭儴浜や簰錛岄偅灝遍渶瑕佺綉緇溿?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>璁$畻鏈虹綉緇?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >TCP/IP<span style="font-family:瀹嬩綋;"><span>璇﹁В</span> <span style="font-family:瀹嬩綋;">鍗?/span>1</span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >TCP/IP<span style="font-family:瀹嬩綋;"><span>璇﹁В</span> <span style="font-family:瀹嬩綋;">鍗?/span>2</span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >TCP/IP<span style="font-family:瀹嬩綋;"><span>璇﹁В</span> <span style="font-family:瀹嬩綋;">鍗?/span>3</span></a></p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">鏁版嵁搴擄細瀛樺偍鏁版嵁銆?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>鏁版嵁搴撶郴緇熸璁?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >MySQL 5 <span style="font-family:瀹嬩綋;"><span>鏉冨▉鎸囧崡</span>-(<span style="font-family:瀹嬩綋;">絎?/span>3<span style="font-family:瀹嬩綋;">鐗?/span>)</span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >MySQL<span style="font-family:瀹嬩綋;"><span>鎬ц兘璋冧紭涓庢灦鏋勮璁?/span></span></a></p> <p style="margin-left:21.0pt"> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">杞歡宸ョ▼錛氬紑鍙戣蔣浠舵槸涓涓ぇ宸ョ▼錛岄渶瑕佹湁涓濂楃悊璁烘潵綆$悊杞歡寮鍙戙?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>杞歡宸ョ▼</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>鏁忔嵎杞歡寮鍙?/span></span></a></p> <p> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span><span style="font-family:瀹嬩綋;">綆楁硶錛氬皻鏈帴瑙︺?/span></p> <p style="margin-left:21.0pt"> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span>Java<span style="font-family:瀹嬩綋;">鍩虹錛氬叿浣撶殑楂樼駭璇█錛屾渶濂界殑瀛︿範鍦版柟灝辨槸</span>java<span style="font-family:瀹嬩綋;">鐨勫畼鏂圭綉绔欏拰寮婧愪唬鐮併?/span> </p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Java JDK6<span style="font-family:瀹嬩綋;"><span>瀛︿範絎旇</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Effective Java<span style="font-family:瀹嬩綋;"><span>涓枃鐗?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Java<span style="font-family:瀹嬩綋;"><span>緙栫▼鎬濇兂</span> <span style="font-family:瀹嬩綋;">錛堢</span>4<span style="font-family:瀹嬩綋;">鐗堬級</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Java<span style="font-family:瀹嬩綋;"><span>緗戠粶緙栫▼</span>(<span style="font-family:瀹嬩綋;">涓枃鐗?/span> <span style="font-family: 瀹嬩綋;">絎笁鐗?/span>)</span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >JAVA<span style="font-family:瀹嬩綋;"><span>騫跺彂緙栫▼瀹炶返</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>娣卞叆鐞嗚В</span>Java<span style="font-family:瀹嬩綋;">铏氭嫙鏈?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Spring in Action<span style="font-family:瀹嬩綋;"><span>涓枃鐗?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>娣卞叆嫻呭嚭</span>Hibernate</span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Struts2<span style="font-family:瀹嬩綋;"><span>鏉冨▉鎸囧崡</span></span></a></p> <p> </p> <p style="margin-left:42.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">ü </span>Java<span style="font-family:瀹嬩綋;">榪涢樁錛氶潰鍚戝璞℃濇兂銆佽璁℃ā寮忓拰</span>J2EE<span style="font-family:瀹嬩綋;">娣卞叆銆?/span> </p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >Java<span style="font-family:瀹嬩綋;"><span>涓庢ā寮?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a ><span style="font-family:瀹嬩綋;"><span>浼佷笟搴旂敤鏋舵瀯妯″紡</span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >POJOs IN ACTION<span style="font-family:瀹嬩綋;"><span>涓枃鐗?/span></span></a></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><a >J2EE<span style="font-family:瀹嬩綋;"><span>璁捐寮鍙戠紪紼嬫寚鍗?/span></span></a><span style="font-family:瀹嬩綋;">錛?/span><span>Expert One-on-One J2EE Design and Development</span><span style="font-family:瀹嬩綋;">錛?/span></p> <p style="margin-left:63.0pt;text-indent:-21.0pt;"><span style="font-family:Wingdings;">n </span><span><a >Expert One-on-One J2EE Development without EJB</a></span></p> <p style="margin-left:42.0pt;text-indent:0cm;"> </p> <p style="margin-left:21.0pt"><span style="font-family:瀹嬩綋;">瀛︿範浜嗚繖浜涘熀紜涔嬪悗錛屾垜浠湪鏉ヨ鍒嗗竷寮忥紝</span>nosql<span style="font-family:瀹嬩綋;">錛屼簯璁$畻錛屼紒涓氶泦鎴愮瓑絳夈傚彧鏈夋帉鎻′簡鍩虹鎴戜滑鎵嶈兘鏇村ソ鐨勫垱鏂般?/span></p> </div><img src ="http://www.tkk7.com/yangpingyu/aggbug/369530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-02-07 13:45 <a href="http://www.tkk7.com/yangpingyu/archive/2012/02/07/369530.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>jvm榪愯鏃舵暟鎹尯鍩?/title><link>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369508.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Tue, 07 Feb 2012 02:27:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369508.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/369508.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2012/02/07/369508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/369508.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/369508.html</trackback:ping><description><![CDATA[<div> <p><span style="font-size:12.0pt">Java</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">璇█涓?/span><span style="font-size:12.0pt">c</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">璇█鏈変竴涓潪甯擱噸瑕佺殑鍖哄埆灝辨槸錛氬唴瀛樼鐞嗘柟寮忕殑涓嶅悓錛?/span><span style="font-size:12.0pt">java</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">璇█鍐呭瓨綆$悊涓嶉渶瑕佺▼搴忓紑鍙戜漢鍛樺叧娉紝鑰?/span><span style="font-size:12.0pt">c</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">璇█鐨勫唴瀛樼殑璇鋒眰鍜岄噴鏀鵑兘鏄紑鍙戜漢鍛樻潵澶勭悊銆傝京璇佺殑鎬濈淮鏉ョ湅錛屼笉鍚屽唴瀛樼鐞嗗疄鐜版柟寮忔湁浼樼偣鍜岀己鐐癸紝鎵浠ヨ璦搴旂敤鐨勫満鏅紝鏁堢巼浼氭湁寰堝ぇ涓嶅悓銆?/span></p> <p> </p> <p><span style="font-size:12.0pt">Jvm</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">榪愯鏃剁殑鏁版嵁鍖哄煙涓昏鏈夛細紼嬪簭璁℃暟鍣ㄣ佽櫄鎷熸満鏍堛佹湰鍦版柟娉曟爤銆佹柟娉曞尯鍜屽爢銆傚叾涓▼搴忚鏁板櫒銆佽櫄鎷熸満鏍堝拰鏈湴鏂規硶鏍堟槸綰跨▼鐙韓錛岃屾柟娉曞尯鍜屽爢鏄墍鏈夌嚎紼嬪叡浜?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">ü </span><span style="font-size:12.0pt;font-family:瀹嬩綋;">紼嬪簭璁℃暟鍣細</span><span style="font-size:12.0pt">jvm</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">姣忎釜綰跨▼閮芥湁涓涓▼搴忚鏁板櫒銆傚湪浠諱竴鏃跺埢閮芥湁涓涓嚎紼嬬殑鏂規硶鍦ㄨ繍琛岋紝濡傛灉榪欎釜鏂規硶涓嶆槸鏈湴鏂規硶錛岄偅涔堢▼搴忚鏁板櫒瀛樻斁鐨勫氨鏄鍦ㄦ墽琛岀殑鎸囦護鍦板潃錛涘鏋滄槸鏈湴鏂規硶錛岄偅涔堢▼搴忚鏁板櫒涓瓨鏀劇殑鎸囧畾鍦板潃涓?/span><span style="font-size:12.0pt">undefined</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">銆?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">ü </span><span style="font-size:12.0pt;font-family:瀹嬩綋;">铏氭嫙鏈烘爤錛氬綋</span><span style="font-size:12.0pt">jvm</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">鍒涘緩涓涓嚎紼嬬殑鏃跺欏氨浼氫負綰跨▼鍒嗛厤涓涓櫄鎷熸満鏍堛備富瑕佺敤浜庡瓨鏀炬柟娉曠殑涓浜涙湰鍦板彉閲忓拰閮ㄥ垎緇撴灉錛屼竴鑸繖閲岀殑澶у皬閮芥槸鍥哄畾錛屼絾涓嶆槸緇濆銆備竴涓柟娉曠殑鎵ц鍒板畬鎴愬氨鏄爤鐨勫叆鏍堝拰鍑烘爤銆傚亣璁懼湪鏌愭柟娉曚腑瀹氫箟浜嗕竴涓璞?/span><span style="font-size:12.0pt">Object obj=new Object();</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">鍏朵腑</span><span style="font-size:12.0pt">obj</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">鏄瓨鏀懼湪鏍堜笂錛岃?/span><span style="font-size:12.0pt">new Object()</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">鏄湪鍫嗕笂鍒嗛厤銆?/span><span style="font-size:12.0pt">-Xss</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">鍙互鎺у埗</span><span style="font-size: 12.0pt">jvm</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">铏氭嫙鏈烘爤鐨勫ぇ灝忋?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">ü </span><span style="font-size:12.0pt;font-family:瀹嬩綋;">鏈湴鏂規硶鏍堬細澶т綋璺熻櫄鎷熸満鏍堢被浼鹼紝涓嶈繃鏄粰鏈湴鏂規硶浣跨敤鐨勩傝櫄鎷熸満鏍堝拰鏈湴鏂規硶鏍堝湪</span><span style="font-size:12.0pt">hotspot</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">鏄病鏈夊垎寮瀹炵幇鐨勶紝鑰屾槸緇熺О涓烘爤銆?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">ü </span><span style="font-size:12.0pt;font-family:瀹嬩綋;">鏂規硶鍖猴細涓昏瀛樻斁闈欐佸彉閲忥紝甯擱噺錛岀被鍔犺澆鍣ㄥ姞杞界殑綾葷瓑涓浜涗俊鎭?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">ü </span><span style="font-size:12.0pt;font-family:瀹嬩綋;">鍫嗭細</span><span style="font-size:12.0pt">jvm</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">緇濆ぇ閮ㄥ垎鐨勫璞″垎閰嶉兘鍦ㄥ爢涓婂垎閰嶃?/span><span style="font-size:12.0pt">-Xmn –Xmx</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">鏄帶鍒跺爢鏈灝忓煎拰鏈澶у鹼紝涓鑸爢鐨勫ぇ灝忓湪浣跨敤浜嗚秴榪?/span><span style="font-size:12.0pt">mx</span><span style="font-size:12.0pt; font-family:瀹嬩綋;">璁懼畾鐨?/span><span style="font-size:12.0pt">70%</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">鐨勬椂鍊欙紝灝變細鑷姩鎵╁ぇ鍒版渶澶у鹼紝鎵浠ラ槻姝㈣繖縐嶆墿澶у拰緙╁皬鎴戜滑璁劇疆鎴愪竴鏍風殑鍊箋?/span></p> </div><img src ="http://www.tkk7.com/yangpingyu/aggbug/369508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2012-02-07 10:27 <a href="http://www.tkk7.com/yangpingyu/archive/2012/02/07/369508.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>ClassCastExceptionhttp://www.tkk7.com/yangpingyu/archive/2012/01/10/368240.htmlyangpingyuyangpingyuTue, 10 Jan 2012 08:07:00 GMThttp://www.tkk7.com/yangpingyu/archive/2012/01/10/368240.htmlhttp://www.tkk7.com/yangpingyu/comments/368240.htmlhttp://www.tkk7.com/yangpingyu/archive/2012/01/10/368240.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/368240.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/368240.html

ClassCastException綾誨瀷杞崲寮傚父錛屾槸涓涓繍琛屾椂寮傚父銆?/span>

 

闈炲父甯歌灝辨槸涓嶅悓綾誨瀷涔嬮棿鐨勫己鍒剁被鍨嬭漿鎹㈠氨浼氭姏鍑?/span>ClassCastException寮傚父銆傝繕鏈変竴縐嶅氨鏄笉鍚?/span>ClassLoader鍔犺澆鐨勭浉鍚岀殑綾誨瀷杞崲涔熶細鎶涘嚭ClassCastException銆傛帴涓嬫潵鎴戠敤浠g爜鏉ヨ緇嗚В閲婁笅銆?/span>

 

1銆?nbsp;寮哄埗綾誨瀷杞崲

public class ClassCastExceptionTest {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       Animal a1 = new Dog(); //1

       Animal a2 = new Cat(); //2

       Dog d1 = (Dog)a1;       //3

       Dog d2 = (Dog)a2;       //4

    }

}

鎶婄尗杞崲鎴愮嫍錛屾槸涓嶅鐨勩傚悗闈㈡敞閲婁負4鐨勪唬鐮佹槸鏃犳硶姝e父璧嬪肩殑銆?/span>

Exception in thread "main" java.lang.ClassCastException: Cat cannot be cast to Dog

    at ClassCastExceptionTest.main(ClassCastExceptionTest.java:13)

 

 

2銆?nbsp;涓嶅悓classloader鍔犺澆鐩稿悓綾誨瀷綾諱箣闂寸殑杞崲

import java.io.File;

import java.net.URL;

import java.net.URLClassLoader;

 

 

public class ClassCastExceptionTest {

    /**

     * @param args

     */

    public static void main(String[] args) throws Exception {

       File file = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath());

       URL[] urls = {file.toURL()};

       URLClassLoader classloader1 = new URLClassLoader(urls, ClassLoader.getSystemClassLoader().getParent());

       Class classloader1Animal1 = classloader1.loadClass("Dog");

       Dog dog1 = (Dog)classloader1Animal1.newInstance();

      

       URLClassLoader classloader2 = new URLClassLoader(urls, ClassLoader.getSystemClassLoader().getParent());

       Class classloader1Animal2 = classloader1.loadClass("Dog");

       Dog dog2 = (Dog)classloader1Animal1.newInstance();

      

       dog1 = dog2;

    }

 

}

 

浠g爜涓垜浠湅鍒?/span>dog1=dog2錛岃繖鏍瘋祴鍊兼槸浼氭姏寮傚父鐨勩?/span>

Exception in thread "main" java.lang.ClassCastException: Dog cannot be cast to Dog

    at ClassCastExceptionTest.main(ClassCastExceptionTest.java:17)

 

浠ュ悗澶у閬囧埌classCastException鐨勬椂鍊欒娉ㄦ剰浜嗭紝涓嶄竴瀹氭槸寮哄埗綾誨瀷杞崲瀵艱嚧鐨勶紝涔熸湁鍙兘涓嶅悓鐨?/span>classloader鍔犺澆浜嗙浉鍚岀殑綾伙紝鐒跺悗榪欎釜綾諱笉鍚岀殑瀹炰緥榪涜璧嬪箋?/span>



]]>
byte[]杞?6榪涘埗bug鎬葷粨http://www.tkk7.com/yangpingyu/archive/2012/01/10/368211.htmlyangpingyuyangpingyuTue, 10 Jan 2012 06:39:00 GMThttp://www.tkk7.com/yangpingyu/archive/2012/01/10/368211.htmlhttp://www.tkk7.com/yangpingyu/comments/368211.htmlhttp://www.tkk7.com/yangpingyu/archive/2012/01/10/368211.html#Feedback0http://www.tkk7.com/yangpingyu/comments/commentRss/368211.htmlhttp://www.tkk7.com/yangpingyu/services/trackbacks/368211.html

錛堜竴錛夐棶棰?/span>

         欏圭洰涓渶瑕佸鏂囦歡鍋?/span>md5sum錛屽垎涓ゆ璧幫細1銆佸鏂囦歡嫻佺殑姣忎釜瀛楄妭鐢?/span>md5瀹炰緥榪涜update錛岀劧鍚庤繘琛?/span>digest銆?/span>2銆?/span>digest榪斿洖闀垮害涓?/span>16鐨?/span>byte鏁扮粍錛屼竴鑸垜浠渶瑕佹妸byte鏁扮粍杞垚16榪涘埗瀛楃涓詫紙寰堝寮婧愮殑md5鍔犲瘑綆楁硶濡傛瀹炵幇錛岀湡姝g殑鍘熷洜榪樹笉鏄緢鐞嗚В錛屽彲鑳芥槸渚夸簬鏌ョ湅鍜屼紶杈擄級銆傚叿浣撶殑瀹炵幇浠g爜濡備笅錛?/span>

         /**

    * 瀵規枃浠惰繘琛?/span>md5 sum鎿嶄綔

    * @param checkFile 瑕佽繘琛屽仛md5 sum鐨勬枃浠?/span>

    * @return

    */

    public static String md5sum(File checkFile){

       String md5sumResult = "";

       if(checkFile == null || (!checkFile.exists())){

           return md5sumResult;

       }

       MessageDigest digest = MessageDigest.getInstance("MD5");

       InputStream is = new FileInputStream(checkFile);

       byte[] buffer = new byte[8192];

       int read = 0;

       try {

           while( (read = is.read(buffer)) > 0) {

              digest.update(buffer, 0, read);

           }

           byte[] md5sum = digest.digest();

           BigInteger bigInt = new BigInteger(1, md5sum);

           md5sumResult = bigInt.toString(16);

       }

       catch(IOException e) {

           throw new RuntimeException("Unable to process file for MD5", e);

       }

       finally {

           try {

              is.close();

           }

           catch(IOException e) {

              throw new RuntimeException("Unable to close input stream for MD5 calculation", e);

           }

       }

      

       return md5sumResult;

    }

 

    鍏朵腑榛勮壊鑳屾櫙鑹茬殑杞崲鏂瑰紡鏄湁闂鐨勩備負浠涔堢敤bigint杞?/span>16榪涘埗浼氭湁闂鍛紝鍘熷洜鏄?/span>bigint榪涜16榪涘埗杞崲鐨勬椂鍊欑涓涓?/span>0琚嚜鍔ㄥ幓鎺変簡.

   

 

錛堜簩錛夋紜В鍐蟲柟寮?/span>

閭f紜殑鏂瑰紡鏄庝箞鏍風殑鍛紵涓嬮潰鏈変袱縐嶄笉鍚岀殑杞崲鏂瑰紡錛屼絾鏄師鐞嗗叾瀹炴槸涓鑷寸殑銆?/span>

    絎竴縐嶆紜殑鏂瑰紡錛堢敱鐜嬪緩鎻愪緵錛夛細

    /**

    * 灝嗗瓧鑺傛暟緇勮漿鎹負16榪涘埗瀛楃涓?/span>

    *

    * @param buffer

    * @return

    */

   public static String toHex(byte[] buffer) {

      StringBuffer sb = new StringBuffer(buffer.length * 2);

      for (int i = 0; i < buffer.length; i++) {

       sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));

       sb.append(Character.forDigit(buffer[i] & 15, 16));

      }

 

      return sb.toString();

   }

 

    絎簩縐嶆紜殑鏂瑰紡錛?/span>

    public static String bytes2HexString(byte[] b) {

       String ret = "";

       for (int i = 0; i < b.length; i++) {

           String hex = Integer.toHexString(b[i] & 0xFF);

           if (hex.length() == 1) {

              hex = '0' + hex;

           }

           ret += hex;

       }

       return ret;

    }

 

錛堜笁錛夐棶棰樺垎鏋?/span>

    Md5綆楁硶瀵逛換浣曢暱搴︾殑瀛楃涓茶繘琛岀紪鐮佹渶鍚庤緭鍑烘槸128浣嶉暱鏁存暟錛屼篃灝辨槸闀垮害涓?/span>16鐨?/span>byte鏁扮粍銆傛垜浠」鐩皟鐢ㄧ殑鏄?/span>jdk瀹炵幇鐨?/span>md5綆楁硶錛屾墍浠ヤ竴鑸槸娌¢棶棰樼殑銆?/span>

    鎺ヤ笅鏉ユ垜浠澶勭悊鐨勪簨鎯咃紝鍒嗗埆寰幆鏁扮粍錛?span style="background:yellow;">鎶婃瘡涓瓧鑺傝漿鎹㈡垚2涓?/span>16榪涘埗瀛楃錛屼篃灝辨槸璇存瘡4浣嶈漿鎴愪竴涓?/span>16榪涘埗瀛楃銆?/span>

   

    涓婇潰姝g‘鐨勪袱縐嶆柟寮忎篃灝辨槸鍋氫簡榪欐牱鐨勪簨鎯呫?/span>

    絎竴縐嶆柟寮忥細

       Character.forDigit((buffer[i] & 240) >> 4, 16)鎶婂瓧鑺傜殑楂?/span>4浣嶅彇鍑哄彸縐?/span>4浣嶆崲綆楁垚int錛岀劧鍚庨氳繃forDigit杞崲鎴?/span>16榪涘埗瀛楃

       Character.forDigit(buffer[i] & 15, 16)鎶婂瓧鑺傜殑浣?/span>4浣嶅彇鍑烘崲綆楁垚int錛岀劧鍚庨氳繃forDigit杞崲鎴?/span>16榪涘埗瀛楃

   

    絎簩縐嶆柟寮忥細

       Integer.toHexString(b[i] & 0xFF)鎶婃暣涓瓧鑺傝漿鎴?/span>int錛岀劧鍚?/span>toHexString涔熷氨鏄仛楂?/span>4浣嶅拰浣?/span>4浣嶇殑榪愮畻銆備絾鏄繖涓柟娉曞鏋滈珮鍥涗綅鏄?/span>0鐨勮瘽灝變笉杈撳嚭浠諱綍涓滆タ錛?/span>

鎵浠ュ湪杈撳嚭鐨勫瓧絎﹀墠鍔?/span>0鍗沖彲銆?/span>

       b[i] & 0xFF灝辨槸鎶?/span>byte杞垚int錛屼負浠涔堢敤涓?/span>oxff鍋氫笌榪愮畻錛屾槸鍥犱負濡傛灉b[i]鏄礋鏁扮殑璇濓紝浠?/span>8浣嶅彉鎴?/span>32浣嶄細琛?/span>1錛屾墍浠ラ渶瑕佷笌0xff鍋氫笌榪愮畻錛屽彲浠ユ妸鍓嶉潰鐨?/span>24浣嶅叏閮ㄦ竻闆訛紝鍙堝彲浠ヨ〃紺烘垚鍘熸潵鐨勫瓧鑺備簡銆?/span>

   

 

闄勶細

灝介噺浣跨敤寮婧愭彁渚涚殑宸ュ叿鍖咃紝姣斿錛?/span>

org.apache.commons.codec.digest.DigestUtils.md5Hex(InputStream data)鏉ュ鏂囦歡嫻佽繘琛?/span>md5鍗沖彲錛屾洿鍔犳柟渚匡紝鍙潬銆?/span>



]]>
Java綾誨姞杞戒綋緋?/title><link>http://www.tkk7.com/yangpingyu/archive/2011/05/14/350248.html</link><dc:creator>yangpingyu</dc:creator><author>yangpingyu</author><pubDate>Sat, 14 May 2011 13:41:00 GMT</pubDate><guid>http://www.tkk7.com/yangpingyu/archive/2011/05/14/350248.html</guid><wfw:comment>http://www.tkk7.com/yangpingyu/comments/350248.html</wfw:comment><comments>http://www.tkk7.com/yangpingyu/archive/2011/05/14/350248.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/yangpingyu/comments/commentRss/350248.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangpingyu/services/trackbacks/350248.html</trackback:ping><description><![CDATA[<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 紓?/w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>ZH-CN</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="--" /> <m:smallFrac m:val="off" /> <m:dispDef/> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:LsdException locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal" /> <w:LsdException locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 2" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 3" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 4" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 5" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 6" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 7" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 8" /> <w:LsdException locked="false" priority="9" qformat="true" name="heading 9" /> <w:LsdException locked="false" priority="39" name="toc 1" /> <w:LsdException locked="false" priority="39" name="toc 2" /> <w:LsdException locked="false" priority="39" name="toc 3" /> <w:LsdException locked="false" priority="39" name="toc 4" /> <w:LsdException locked="false" priority="39" name="toc 5" /> <w:LsdException locked="false" priority="39" name="toc 6" /> <w:LsdException locked="false" priority="39" name="toc 7" /> <w:LsdException locked="false" priority="39" name="toc 8" /> <w:LsdException locked="false" priority="39" name="toc 9" /> <w:LsdException locked="false" priority="35" qformat="true" name="caption" /> <w:LsdException locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title" /> <w:LsdException locked="false" priority="1" name="Default Paragraph Font" /> <w:LsdException locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle" /> <w:LsdException locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong" /> <w:LsdException locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis" /> <w:LsdException locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid" /> <w:LsdException locked="false" unhidewhenused="false" name="Placeholder Text" /> <w:LsdException locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1" /> <w:LsdException locked="false" unhidewhenused="false" name="Revision" /> <w:LsdException locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph" /> <w:LsdException locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote" /> <w:LsdException locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5" /> <w:LsdException locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6" /> <w:LsdException locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6" /> <w:LsdException locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6" /> <w:LsdException locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6" /> <w:LsdException locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6" /> <w:LsdException locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6" /> <w:LsdException locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6" /> <w:LsdException locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6" /> <w:LsdException locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6" /> <w:LsdException locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6" /> <w:LsdException locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6" /> <w:LsdException locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6" /> <w:LsdException locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6" /> <w:LsdException locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6" /> <w:LsdException locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis" /> <w:LsdException locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis" /> <w:LsdException locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference" /> <w:LsdException locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference" /> <w:LsdException locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title" /> <w:LsdException locked="false" priority="37" name="Bibliography" /> <w:LsdException locked="false" priority="39" qformat="true" name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> /* Style Definitions */ table.MsoNormalTable {mso-style-name:鏅氳〃鏍? mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-font-kerning:1.0pt;} <![endif]--> <div> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鏃╂湡鐨刯ava紼嬪簭鍛樺彲鑳藉彧瑕佹噦鍩烘湰璇硶錛岃繕鏈夊皯鏁扮殑欏圭洰緇忛獙灝卞彲浠ユ壘鍒頒竴浠芥瘮杈冨ソ鐨勫伐浣溿侸ava鍜宩ava紺懼尯鐨勫彂灞曪紝鏇村鐨勪漢浜嗚В瀹冿紝娣卞叆瀹冦傜幇鍦╦ava紼嬪簭鍛樹簡瑙d竴浜涜娉曟垜鐪嬭繕榪滆繙涓嶅浜嗭紝瀵逛簬jvm鐨勪簡瑙e拰娣卞叆鏄潪甯擱噸瑕佺殑銆傜綉姘戠殑澧炲錛岀綉绔欑殑鍒氭ч渶姹傦紝寰堝緗戠珯闈復楂樻ц兘錛岄珮騫跺彂絳夌瓑涓緋誨垪鐨勯棶棰樸傛病鏈夋繁鍏vm鐨刯ava紼嬪簭鍛樻槸寰堥毦鍐欏嚭楂樿川閲忛珮騫跺彂鐨勪唬鐮侊紙涔熻涓媯掑瓙鎵撴鎵鏈変漢浜嗭紝浣嗘垜鎯崇粷澶ч儴鍒嗘槸鑲畾鐨勶級銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">Osgi</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">涔熻浣犲茍涓嶉檶鐢燂紝浣嗘槸浠栧簳灞傜殑瀹炵幇鏈哄埗浣犲彲鑳芥病鍘諱簡瑙h繃銆傚鏋滀綘鏄釜鎵撶牬鐮傞攨闂埌搴曠殑浜猴紝浣犺偗瀹氫細鎯崇煡閬搊sgi鏄浣曞仛鍒扮殑銆備絾鏄綘娌℃湁浜嗚Вjvm鐨勭被鍔犺澆浣撶郴錛屼綘鑲畾寰堥毦鐞嗚Вosgi鏄鏋滃仛鍒扮被闅旂絳変竴緋誨垪鐨勯棶棰樸備笉榪囨兂瀹屾暣鐞嗚Вosgi榪橀渶瑕佸叾浠栧緢澶氭柟闈㈢殑鐭ヨ瘑錛屼絾鏄畠鍩烘湰鐨勬満鍒惰繕鏄殑浜嗚Вjvm鐨勭被鍔犺澆鏈哄埗銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">Java</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">綾誨簱鏈変簺鍖呭彧鏄畾涔変簡涓涓爣鍑嗭紝鍏蜂綋鐨勫疄鐜伴兘鏄敱鍏蜂綋鐨勪緵搴斿晢鏉ユ彁渚涖侸ava涓庢暟鎹簱榪炴帴灝辨槸涓涓緢濂界殑渚嬪瓙銆侸ava.sql綾誨簱鍙槸瀹氫箟浜唈ava涓庢暟鎹簱榪炴帴鐨勬爣鍑嗭紝閭d箞涓巑ysql灝遍渶瑕乵syql鐨勯┍鍔紝oracle灝遍渶瑕乷racle鐨勯┍鍔紝鑰宩ava.sql綾誨簱鏄敱bootstrap classloader鍔犺澆錛岄┍鍔ㄥ寘涓殑綾繪槸鐢?span>system classloader</span>鏉ュ姞杞斤紝涓嶅悓綾誨姞杞藉櫒鍔犺澆鐨勭被鏄棤娉曠浉浜掕璇嗭紝鎵浠ヨ嚜鐒朵篃鏃犳硶姝e父鎻愪緵鍔熻兘浜嗐俲vm鍙堟槸鎻愪緵浜嗕粈涔堟満鍒惰浠栦滑浜や簰鍛紵濡傛灉浣犵‘瀹炲榪欎簺闂姣棤澶寸華鐨勮瘽錛岄偅涔堟垜瑙夊緱浣犵湡鐨勮濂藉ソ鐞嗚В涓媕vm綾誨姞杞戒綋緋匯?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">榪欑瘒鏂囩珷涓昏鏄粙緇嶄笅jvm綾誨姞杞界殑鏈哄埗鍩虹鐭ヨ瘑銆傚叧浜庡叾浠栫浉鍏蟲秹鍙婏紝鏈夋椂闂寸殑璇濓紝鎴戜細鍗曠嫭鍐欐枃绔犳潵浠嬬粛銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="margin-left:18.0pt;text-align:left;text-indent:-18.0pt;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">1</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">銆?/span> <span style="font-size:12.0pt;font-family:瀹嬩綋;">java</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">綾誨姞杞藉櫒</span></p> <p style="margin-left:18.0pt;text-align:left;text-indent:-18.0pt;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="file:///C:/DOCUME%7E1/WB-YAN%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.jpg" alt="http://www.tkk7.com/images/blogjava_net/yangpingyu/classloader-1.jpg" width="341" height="341" /></span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">1.1 Bootstrap classloader</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">錛歴un jdk鏄敤c++瀹炵幇錛屾墍浠ュ湪浠g爜涓綘鏄棤娉曡幏鍙栨鍔犺澆鍣ㄧ殑瀹炰緥銆傛鍔犺澆鍣ㄤ富瑕佽礋璐e姞杞?JAVA_HOME/jre/lib/rt.jar銆俲ava綾諱腑鑾峰彇緇撴灉涓簄ull錛岃繖閲屽彲浠ョ敤涓涓緥瀛愯窇涓嬭瘉鏄庯細</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">public class Test {</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">         public static void main(String[] arg) throws Exception{</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">                   ClassLoader classloader = Test.class.getClassLoader();</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">                   System.out.println(classloader);</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">                   System.out.println(classloader.getParent());</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">                   System.out.println(classloader.getParent().getParent());</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">         }</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">}</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">杈撳嚭緇撴灉錛?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">sun.misc.Launcher$AppClassLoader@19821f</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">sun.misc.Launcher$ExtClassLoader@addbf1</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">null</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鏈鍚庤緭鍑虹殑null灝辨槸浠h〃bootstrap classloader銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">1.2 Extension classloader</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">錛氫富瑕佸姞杞芥墿灞曞姛鑳界殑jar錛?JAVA_HOME/jre/lib/ext/*.jar銆?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">1.3 System classloader</span><span style="font-size:12.0pt;font-family: 瀹嬩綋;">錛氬姞杞絚laspath涓殑jar鍖呫?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">1.4</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">鑷畾涔?classloader錛氫富瑕佸姞杞戒綘鎸囧畾鐨勭洰褰曚腑鐨勫寘鍜岀被銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="margin-left:18.0pt;text-align:left;text-indent:-18.0pt;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">2</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">銆?/span> <span style="font-size:12.0pt;font-family:瀹嬩綋;">鍙屼翰濮旀淳妯″瀷</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">緋葷粺榪愯鏃訛紝鎴戜滑璇鋒眰鍔犺澆String綾伙紝姝ゆ椂System Classloader鑷繁涓嶆壘classpath涓殑鍖咃紝鎶婅姹傝漿鍙戠粰Extension Classloader錛屼絾瀹冧篃涓嶅仛鏌ユ壘錛屽張杞彂緇橞ootstrap Classloader錛屼絾鏄畠鍙戠幇鑷繁娌℃湁parent浜嗐備簬鏄粬鍦╮t.jar鍖呬腑鎵懼埌String綾誨茍鍔犺澆鍒癹vm涓彁渚涗嬌鐢ㄣ侸vm涓轟粈涔堣榪欎箞瀹炵幇鍛紵鍏跺疄鍜宩ava瀹夊叏浣撶郴鏈夊叧銆傚亣璁緅vm涓嶆槸榪欎箞瀹炵幇錛屾垜浠嚜瀹氫箟涓涓猄tring綾伙紝鍋氫竴浜涚牬鍧忥紝閭d箞榪愯jvm鐨勬満鍣ㄨ偗瀹氳鍙楀埌鎹熷潖銆傚叿浣撲緥瀛愶細</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">public class String {</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">         public static void main(String[] args) {</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">                   System.out.println("hello world");</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">         }</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">}</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鎴戜滑榪愯鑷畾涔塖tring綾葷殑鏃跺欐姤閿欎簡錛岃娌℃湁main鏂規硶錛屽彲鎴戜滑瀹氫箟鐨勬槑鏄庢湁鐨勶紝鍢垮樋錛屽媧炬満鍒剁殑緙樻晠鏈鍚庡姞杞藉埌鐨勬槸鐢眀ootstrap classloader鍦╮t.jar鍖呬腑鐨凷tring錛岄偅涓被鏄病鏈塵ain鏂規硶錛屽洜姝ゆ姤閿欎簡銆?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;"><img src="file:///C:/DOCUME%7E1/WB-YAN%7E1/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.jpg" alt="http://www.tkk7.com/images/blogjava_net/yangpingyu/classloader-2.jpg" width="558" height="116" /></span></p> <p style="margin-left:18.0pt;text-align:left;text-indent:-18.0pt;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">3</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">銆?/span> <span style="font-size:12.0pt;font-family:瀹嬩綋;">綾婚殧紱?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">jvm</span><span style="font-size:12.0pt;font-family:瀹嬩綋;">涓殑綾繪槸錛氱被鍔犺澆鍣?鍖呭悕+綾誨悕銆傛瘮濡傦細URLClassLoader1錛孶RLClassLoader2鍒嗗埆鍔犺澆com.test.Test鐨勬椂鍊欎細鍔犺澆涓ゆ錛屽洜涓烘瘡涓猚lassloader涓殑綾誨浜庡叾浠朿lassloader鏉ヨ鏄殧紱葷殑錛屼笉璁よ瘑鐨勩備緥瀛愶細</span></p> <p style="text-align:left; background:#EEEEEE" align="left"><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">import</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> java.net.URL;<br /> </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">import</span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:black;"> java.net.URLClassLoader;<br /> <br /> </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">public</span> <span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">class</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> CustomClassloaderTest {<br />     </span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">public</span> <span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">static</span> <span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">void</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> main(String[] args) </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">throws</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:black;"> Exception {<br />         URL url = </span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">new</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> URL("file:/g:/");<br />         URLClassLoader ucl = </span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">new</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> URLClassLoader(</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">new</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> URL[]{url});<br />         Class c = ucl.loadClass("Yang");<br />         c.newInstance();<br />         System.out.println(c.getClassLoader());<br /> <br />         URLClassLoader ucl2 = </span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">new</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> URLClassLoader(</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">new</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> URL[]{url});<br />         Class c2 = ucl2.loadClass("Yang");<br />         c2.newInstance();<br />         System.out.println(c2.getClassLoader());<br />     }<br /> }</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">澶у鎶奩ang綾誨瓨鍦╣鐩樹笅銆?/span></p> <p style="text-align:left; background:#EEEEEE" align="left"><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">public</span> <span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">class</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:black;"> Yang {<br />     </span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">static</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> {<br />         System.out.println("Yang");<br />     }<br /> }</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">榪愯緇撴灉錛?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">Yang</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">java.net.URLClassLoader@c17164</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">Yang</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">java.net.URLClassLoader@61de33</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鐪嬪埌姣忔鍔犺澆Yang綾葷殑鏃跺欓兘杈撳嚭Yang錛岃鏄嶻ang綾昏鍔犺澆浜嗕袱嬈°?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">濡傛灉浣犱笉紜俊錛屽彲浠ヤ慨鏀逛笅浠g爜錛岃鍚屼竴classloader鍔犺澆Yang綾諱袱嬈?/span></p> <p style="text-align:left;" align="left"> </p> <p style="text-align:left; background:#EEEEEE" align="left"><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">import</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> java.net.URL;<br /> </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">import</span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:black;"> java.net.URLClassLoader;<br /> <br /> </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">public</span> <span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">class</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> CustomClassloaderTest {<br />     </span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">public</span> <span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">static</span> <span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">void</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> main(String[] args) </span><span style="font-size:10.0pt;font-family:瀹嬩綋;color:blue;">throws</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:black;"> Exception {<br />         URL url = </span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">new</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> URL("file:/g:/");<br />         URLClassLoader ucl = </span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:blue;">new</span><span style="font-size: 10.0pt;font-family:瀹嬩綋;color:black;"> URLClassLoader(</span><span style="font-size:10.0pt; font-family:瀹嬩綋;color:blue;">new</span><span style="font-size:10.0pt;font-family:瀹嬩綋; color:black;"> URL[]{url});<br />         Class c = ucl.loadClass("Yang");<br />         c.newInstance();<br />         System.out.println(c.getClassLoader());<br /> <br />         Class c2 = ucl.loadClass("Yang");<br />         c2.newInstance();<br />         System.out.println(c2.getClassLoader());<br />     }<br /> }</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鐪嬬湅杈撳嚭緇撴灉錛?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">Yang</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">java.net.URLClassLoader@c17164</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">java.net.URLClassLoader@c17164</span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">緇撴灉涓彧杈撳嚭浜嗕竴嬈ang銆傚洜姝ゅ彲浠ヨ瘉鏄庢垜浠渶寮濮嬭鐨勭被闅旂銆?/span></p> <p style="text-align:left;" align="left"> </p> <p style="margin-left:18.0pt;text-align:left;text-indent:-18.0pt;" align="left"><span style="font-size:12.0pt;font-family:瀹嬩綋;">4</span><span style="font-size: 12.0pt;font-family:瀹嬩綋;">銆?/span> <span style="font-size:12.0pt;font-family:瀹嬩綋;">綰跨▼涓婁笅鏂囩被鍔犺澆鍣?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">鎴戜滑鐞嗚В浜嗗弻浜插媧炬ā鍨嬶紝閭d箞鐩墠鍙湁鐢變笅鍚戜笂鍗曞悜瀵繪壘綾伙紙system->extension->bootstrap錛?/span></p> <p style="text-align:left;" align="left"><span style="font-size:12.0pt; font-family:瀹嬩綋;">銆傛垜浠湪鏈寮濮嬬殑鏃跺欒榪囷紝java.sql鍖呬腑鐨勭被鐢眀ootstrap鎴杄xtension classloader鍔犺澆錛岃宮ysql椹卞姩鍖呮槸鍦╟lasspath涓敱system鏉ュ姞杞斤紝浣哹ootstrap涓殑綾繪槸鏃犳硶鎵懼埌system classloader涓殑綾伙紝姝ゆ椂闈犵嚎紼嬩笂涓嬫枃綾誨姞杞藉櫒鏉ヨВ鍐熾傜嚎紼嬩笂涓嬫枃綾誨姞杞藉櫒涓昏灝辨槸鑳借jvm綾誨姞杞芥ā鍨嬪叿鏈変簡鍚戜笅瀵繪壘鐨勫彲鑳斤紝bootstrap->extension->system錛屽鏋滀笉鍋氫換浣曡緗紝綰跨▼涓婁笅鏂囩被鍔犺澆鍣ㄩ粯璁ゆ槸system classloader銆傛湰鏉ヨ繖閲屾兂鍐欎竴涓緥瀛愮殑錛屽彲鏄湁鐐歸夯鐑︼紝鎵浠ヤ笅嬈″崟鐙啓涓綃囧叧浜庤繖鏂歸潰鐨勭煡璇嗐?/span></p> <p> </p> </div><img src ="http://www.tkk7.com/yangpingyu/aggbug/350248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangpingyu/" target="_blank">yangpingyu</a> 2011-05-14 21:41 <a href="http://www.tkk7.com/yangpingyu/archive/2011/05/14/350248.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://770144.com" target="_blank">亚洲国产综合专区电影在线</a>| <a href="http://0755szyxcm.com" target="_blank">国产亚洲精品国看不卡</a>| <a href="http://xyzch.com" target="_blank">免费精品国产自产拍观看</a>| <a href="http://18yinren.com" target="_blank">午夜亚洲av永久无码精品</a>| <a href="http://f4f8.com" target="_blank">色久悠悠婷婷综合在线亚洲</a>| <a href="http://tuopumao.com" target="_blank">亚洲精品无码鲁网中文电影</a>| <a href="http://128313.com" target="_blank">亚洲一区二区中文</a>| <a href="http://youketech.com" target="_blank">亚洲av永久无码嘿嘿嘿</a>| <a href="http://gztzbj.com" target="_blank">在线视频亚洲一区</a>| <a href="http://hhgcnet.com" target="_blank">中文在线免费视频</a>| <a href="http://saob19.com" target="_blank">999久久久免费精品国产</a>| <a href="http://njbyz.com" target="_blank">免费看美女让人桶尿口</a>| <a href="http://686kp.com" target="_blank">久久亚洲精品无码观看不卡</a>| <a href="http://seosuanfa.com" target="_blank">久久亚洲私人国产精品vA</a>| <a href="http://www454yu.com" target="_blank">亚洲中文无码mv</a>| <a href="http://732r.com" target="_blank">黄色视频在线免费观看</a>| <a href="http://fphs666.com" target="_blank">91九色精品国产免费</a>| <a href="http://llyysp.com" target="_blank">妞干网在线免费视频</a>| <a href="http://mangaou.com" target="_blank">国产av无码专区亚洲av果冻传媒</a>| <a href="http://kkjk123.com" target="_blank">亚洲性无码av在线</a>| <a href="http://ningxialanh.com" target="_blank">青青免费在线视频</a>| <a href="http://bdyls.com" target="_blank">蜜桃成人无码区免费视频网站</a>| <a href="http://wwwav888.com" target="_blank">女人毛片a级大学毛片免费</a>| <a href="http://616kb.com" target="_blank">亚洲午夜久久久久妓女影院</a>| <a href="http://tj-zhongfa.com" target="_blank">亚洲欧洲日韩在线电影</a>| <a href="http://800141.com" target="_blank">污网站在线观看免费</a>| <a href="http://nb46.com" target="_blank">2019中文字幕免费电影在线播放</a>| <a href="http://jiggybaby.com" target="_blank">日本不卡视频免费</a>| <a href="http://hbqueena.com" target="_blank">亚洲尹人九九大色香蕉网站 </a>| <a href="http://billtsssrvp.com" target="_blank">亚洲欧美日韩自偷自拍</a>| <a href="http://ebuy668.com" target="_blank">一区二区视频免费观看</a>| <a href="http://www22432.com" target="_blank">99视频全部免费精品全部四虎</a>| <a href="http://blzcn.com" target="_blank">mm1313亚洲精品国产</a>| <a href="http://hnmxld.com" target="_blank">亚洲日本国产精华液</a>| <a href="http://www026qqcom.com" target="_blank">一级特黄a大片免费</a>| <a href="http://gstywy.com" target="_blank">日本亚洲免费无线码</a>| <a href="http://bbby6.com" target="_blank">中文字幕亚洲第一</a>| <a href="http://2023852.com" target="_blank">丁香婷婷亚洲六月综合色</a>| <a href="http://147v.com" target="_blank">亚洲人成色77777</a>| <a href="http://www16am8.com" target="_blank">亚洲国产成人精品激情</a>| <a href="http://yongyihongze.com" target="_blank">成年免费a级毛片免费看无码</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>