锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产AV日韩A∨亚洲AV电影,亚洲av乱码中文一区二区三区,水蜜桃亚洲一二三四在线http://m.tkk7.com/miaoyachun/category/50699.htmlzh-cnFri, 08 Dec 2017 06:50:38 GMTFri, 08 Dec 2017 06:50:38 GMT60Spring boot澶栭儴閰嶇疆-閰嶇疆涓績鍖?/title><link>http://m.tkk7.com/miaoyachun/archive/2017/12/08/432940.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Fri, 08 Dec 2017 06:13:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2017/12/08/432940.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/432940.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2017/12/08/432940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/432940.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/432940.html</trackback:ping><description><![CDATA[鍦⊿pring cloud config鍑烘潵涔嬪墠, 鑷繁瀹炵幇浜嗗熀浜嶼K鐨勯厤緗腑蹇? 鏉滅粷浜嗘湰鍦皃roperties閰嶇疆鏂囦歡, 鍘熺悊寰堢畝鍗? 鍙槸閲嶈澆浜哖ropertyPlaceholderConfigurer鐨刴ergeProperties():<br /><br /><div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'瀹嬩綋';font-size:10.5pt;"><span style="color:#629755;font-style:italic;">/**<br /></span><span style="color:#629755;font-style:italic;"> * 閲嶈澆鍚堝茍灞炴у疄鐜?br /></span><span style="color:#629755;font-style:italic;"> * 鍏堝姞杞絝ile properties錛?鐒跺悗騫跺叆ZK閰嶇疆涓績璇誨彇鐨刾roperties<br /></span><span style="color:#629755;font-style:italic;"> *<br /></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@return </span><span style="color:#629755;font-style:italic;">鍚堝茍鍚庣殑灞炴ч泦鍚?br /></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@throws </span><span style="color:#629755;font-style:italic;">IOException 寮傚父<br /></span><span style="color:#629755;font-style:italic;"> */<br /></span><span style="color:#bbb529;">@Override<br /></span><span style="color:#cc7832;">protected </span>Properties <span style="color:#ffc66d;">mergeProperties</span>() <span style="color:#cc7832;">throws </span>IOException {<br /> Properties result = <span style="color:#cc7832;">new </span>Properties()<span style="color:#cc7832;">;<br /></span> <span style="color:#808080;"> // 鍔犺澆鐖剁被鐨勯厤緗?br /></span> Properties mergeProperties = <span style="color:#cc7832;">super</span>.mergeProperties()<span style="color:#cc7832;">;<br /></span> result.putAll(mergeProperties)<span style="color:#cc7832;">;<br /></span> <span style="color:#808080;"> // 鍔犺澆浠巣k涓鍙栧埌鐨勯厤緗?br /></span> Map<String<span style="color:#cc7832;">, </span>String> configs = loadZkConfigs()<span style="color:#cc7832;">;<br /></span> result.putAll(configs)<span style="color:#cc7832;">;<br /></span><span style="color:#cc7832;"> return </span>result<span style="color:#cc7832;">;<br /></span>}</pre></div><br />榪欎釜瀹炵幇鍦╯pring欏圭洰閲岀敤璧鋒潵榪樻槸鎸洪『鎵嬬殑, 浣嗘槸榪戞湡閮ㄥ垎spring-boot欏圭洰閲屽彂鐜拌繖縐峱laceholder鐨勫疄鐜拌窡spring boot鐨凘ConfigurationProperties(prefix = "xxx") 涓嶈兘寰堝ソ鐨勯厤鍚堝伐浣?<br />涔熷氨鏄睘鎬ф病鏈夎resolve澶勭悊, 鐢ˊValue鐨勬柟寮忕‘鍙互璇誨埌, 浣嗘槸@Value閰嶇疆璧鋒潵濡傛灉灞炴у鐨勮瘽榪樻槸鎸虹箒鐞愮殑, 榪樻槸鍊懼悜鐢ˊConfigurationProperties鐨刾refix, 浜庢槸鐪嬩簡涓媠pring boot鐨勬枃妗e彂鐜?code>PropertySource</code> order:<div></div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">   * Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).<br />   * @TestPropertySource annotations on your tests.<br />   * @SpringBootTest#properties annotation attribute on your tests.<br />   * Command line arguments.<br />   * Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property)<br />   * ServletConfig init parameters.<br />   * ServletContext init parameters.<br />   * JNDI attributes from java:comp/env.<br />   * Java System properties (System.getProperties()).<br />   * OS environment variables.<br />   * A RandomValuePropertySource that only has properties in random.*.<br />   * Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants)<br />   * Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants)<br />   * Application properties outside of your packaged jar (application.properties and YAML variants).<br />   * Application properties packaged inside your jar (application.properties and YAML variants).<br />   * @PropertySource annotations on your @Configuration classes.<br />   * Default properties (specified using SpringApplication.setDefaultProperties).</span></div></div><div></div>涓嶉毦鍙戠幇鍏朵細媯鏌ava system propeties閲岀殑灞炴? 涔熷氨鏄, 鍙鎶妋ergerProperties璇誨埌鐨勫睘鎬у啓鍏ava system props閲屽嵆鍙? 鐪嬩簡涓嬫簮鐮? 鎵懼埌涓垏鍏ョ偣<br /><br /><div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'瀹嬩綋';font-size:10.5pt;"><span style="color:#629755;font-style:italic;">/**<br /></span><span style="color:#629755;font-style:italic;"> * 閲嶈澆澶勭悊灞炴у疄鐜?br /></span><span style="color:#629755;font-style:italic;"> * 鏍規嵁閫夐」, 鍐沖畾鏄惁灝嗗悎騫跺悗鐨刾rops鍐欏叆緋葷粺灞炴? Spring boot闇瑕?br /></span><span style="color:#629755;font-style:italic;"> *<br /></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@param </span><span style="color:#8a653b;font-style:italic;">beanFactoryToProcess<br /></span> <span style="color:#629755;font-style:italic;">* </span><span style="color:#629755;font-weight:bold;font-style:italic;">@param </span><span style="color:#8a653b;font-style:italic;">props </span><span style="color:#629755;font-style:italic;">鍚堝茍鍚庣殑灞炴?br /></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@throws </span><span style="color:#629755;font-style:italic;">BeansException<br /></span><span style="color:#629755;font-style:italic;"> */<br /></span><span style="color:#bbb529;">@Override<br /></span><span style="color:#cc7832;">protected void </span><span style="color:#ffc66d;">processProperties</span>(ConfigurableListableBeanFactory beanFactoryToProcess<span style="color:#cc7832;">, </span>Properties props) <span style="color:#cc7832;">throws </span>BeansException {<br /> <span style="color:#808080;">// 鍘熸湁閫昏緫<br /></span> <span style="color:#cc7832;">super</span>.processProperties(beanFactoryToProcess<span style="color:#cc7832;">, </span>props)<span style="color:#cc7832;">;<br /></span> <span style="color:#808080;"> // 鍐欏叆鍒扮郴緇熷睘鎬?br /></span> <span style="color:#cc7832;"> if </span>(<span style="color:#9876aa;">writePropsToSystem</span>) {<br /> <span style="color:#808080;">// write all properties to system for spring boot<br /></span> Enumeration<?> propertyNames = props.propertyNames()<span style="color:#cc7832;">;<br /></span><span style="color:#cc7832;"> while </span>(propertyNames.hasMoreElements()) {<br /> String propertyName = (String) propertyNames.nextElement()<span style="color:#cc7832;">;<br /></span> String propertyValue = props.getProperty(propertyName)<span style="color:#cc7832;">;<br /></span> System.<span style="font-style:italic;">setProperty</span>(propertyName<span style="color:#cc7832;">, </span>propertyValue)<span style="color:#cc7832;">;<br /></span> }<br /> }<br />}</pre></div>涓洪伩鍏嶅獎鍝嶈繃澶? 璁劇疆浜嗕釜寮鍏? 鏄惁鍐欏叆緋葷粺灞炴? 濡傛灉鏄痵pring boot鐨勯」鐩? 灝卞紑鍚? 榪欐牱瀵圭嚎涓婇潪spring boot欏圭洰鍋氬埌褰卞搷鏈灝? 鐒跺悗spring boot鐨凘ConfigurationProperties瀹岀編璇誨埌灞炴?<br /><br />鍏蜂綋浠g爜瑙? org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor<br /><br /><div><pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: "瀹嬩綋"; font-size: 10.5pt;"><span style="color:#bbb529;">@Override<br /></span><span style="color:#cc7832;">public </span>Object <span style="color:#ffc66d;">postProcessBeforeInitialization</span>(Object bean<span style="color:#cc7832;">, </span>String beanName)<br /> <span style="color:#cc7832;">throws </span>BeansException {<br /> <span style="color:#bbb529;">ConfigurationProperties </span>annotation = AnnotationUtils<br /> .<span style="font-style:italic;">findAnnotation</span>(bean.getClass()<span style="color:#cc7832;">, </span><span style="color:#bbb529;">ConfigurationProperties</span>.<span style="color:#cc7832;">class</span>)<span style="color:#cc7832;">;<br /></span><span style="color:#cc7832;"> if </span>(annotation != <span style="color:#cc7832;">null</span>) {<br /> postProcessBeforeInitialization(bean<span style="color:#cc7832;">, </span>beanName<span style="color:#cc7832;">, </span>annotation)<span style="color:#cc7832;">;<br /></span> }<br /> annotation = <span style="color:#cc7832;">this</span>.<span style="color:#9876aa;">beans</span>.findFactoryAnnotation(beanName<span style="color:#cc7832;">,<br /></span> <span style="color:#bbb529;">ConfigurationProperties</span>.<span style="color:#cc7832;">class</span>)<span style="color:#cc7832;">;<br /></span><span style="color:#cc7832;"> if </span>(annotation != <span style="color:#cc7832;">null</span>) {<br /> postProcessBeforeInitialization(bean<span style="color:#cc7832;">, </span>beanName<span style="color:#cc7832;">, </span>annotation)<span style="color: #cc7832;">;<br /></span> }<br /> <span style="color:#cc7832;">return </span>bean<span style="color:#cc7832;">;<br /></span>}</pre></div><br /><img src ="http://m.tkk7.com/miaoyachun/aggbug/432940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2017-12-08 14:13 <a href="http://m.tkk7.com/miaoyachun/archive/2017/12/08/432940.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Junit @AfterClass璁塊棶娉ㄥ叆瀵硅薄鐨勬柟娉?/title><link>http://m.tkk7.com/miaoyachun/archive/2017/04/15/432461.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Sat, 15 Apr 2017 02:32:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2017/04/15/432461.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/432461.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2017/04/15/432461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/432461.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/432461.html</trackback:ping><description><![CDATA[<div><span data-slate-fragment="JTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJkb2N1bWVudCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyU3ByaW5nJUU5JUJCJTk4JUU4JUFFJUE0JUU0JUI4JThEJUU1JTg1JTgxJUU4JUFFJUI4JUU1JUFGJUI5JUU3JUIxJUJCJUU3JTlBJTg0JUU1JThGJTk4JUU5JTg3JThGJTJDJTIwJUU0JUI5JTlGJUU1JUIwJUIxJUU2JTk4JUFGJUU5JTlEJTk5JUU2JTgwJTgxJUU1JThGJTk4JUU5JTg3JThGJUU4JUJGJTlCJUU4JUExJThDJUU2JUIzJUE4JUU1JTg1JUE1JUU2JTkzJThEJUU0JUJEJTlDJTJDJTIwJUU0JUJEJTg2JUU2JTk4JUFGJUU1JTlDJUE4JUU2JTlGJTkwJUU0JUJBJTlCJUU1JTlDJUJBJUU2JTk5JUFGJUU2JUFGJTk0JUU1JUE2JTgyJUU1JThEJTk1JUU1JTg1JTgzJUU2JUI1JThCJUU4JUFGJTk1JUU3JTlBJTg0JTQwQWZ0ZXJDbGFzcyVFOCVBNiU4MSVFOCVBRSVCRiVFOSU5NyVBRSVFNiVCMyVBOCVFNSU4NSVBNSVFNSVBRiVCOSVFOCVCMSVBMSUyQyUyMCVFOCU4MCU4Q0p1bml0JUU3JTlBJTg0JUU4JUJGJTk5JUU0JUI4JUFBJUU2JTk2JUI5JUU2JUIzJTk1JUU1JUJGJTg1JUU5JUExJUJCJUU2JTk4JUFGJUU5JTlEJTk5JUU2JTgwJTgxJUU3JTlBJTg0JTJDJTIwJUU0JUI5JTlGJUU1JUIwJUIxJUU0JUJBJUE3JUU3JTk0JTlGJUU0JUJBJTg2JUU2JTgyJTk2JUU4JUFFJUJBJTNCJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTglQTclQTMlRTUlODYlQjMlRTYlODAlOUQlRTglQjclQUYlRTYlOUMlODklRTQlQjglQTQlRTQlQjglQUElM0ElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJ1bm9yZGVyZWRfbGlzdCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmxpc3RfaXRlbSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMnVuc3R5bGVkJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlRTYlODAlOUQlRTglQjclQUYxJTNBJTIwJUU2JTgzJUIzJUU1JThBJTlFJUU2JUIzJTk1JUU1JUFGJUI5JUU5JTlEJTk5JUU2JTgwJTgxJUU1JThGJTk4JUU5JTg3JThGJUU2JUIzJUE4JUU1JTg1JUE1JTJDJTIwJUU0JUI5JTlGJUU1JUIwJUIxJUU2JTk4JUFGJUU3JUJCJTk1JUU4JUJGJTg3U3ByaW5nJUU1JThGJUFBJUU4JTgzJUJEJUU4JUJGJTkwJUU4JUExJThDJUU5JTlEJTlFJUU5JTlEJTk5JUU2JTgwJTgxJUU1JThGJTk4JUU5JTg3JThGJUU2JTg5JThEJUU4JTgzJUJEJUU2JUIzJUE4JUU1JTg1JUE1JUU0JUJFJTlEJUU4JUI1JTk2JUU3JTlBJTg0JUU1JUEzJTgxJUU1JTlFJTkyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIybGlzdF9pdGVtJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIydW5zdHlsZWQlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4MCU5RCVFOCVCNyVBRjIlM0ElMjAlRTYlODMlQjMlRTUlOEElOUUlRTYlQjMlOTUlNDBBZnRlckNsYXNzJUU2JTk0JUI5JUU5JTgwJUEwJUU0JUI4JUJBJUU5JTlEJTlFJUU5JTlEJTk5JUU2JTgwJTgxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIydW5vcmRlcmVkX2xpc3QlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJsaXN0X2l0ZW0lMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJ1bnN0eWxlZCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JUFFJTlFJUU3JThFJUIwSnVuaXQlMjBSdW5MaXN0ZW5lciUyQyUyMCVFOCVBNiU4NiVFNyU5QiU5NnRlc3RSdW5GaW5pc2hlZCVFNiU5NiVCOSVFNiVCMyU5NSUyQyUyMCVFOCVCRiU5OSVFOSU4NyU4QyVFNSU4RSVCQiVFNSVBRSU5RSVFNyU4RSVCMCVFNyVCMSVCQiVFNCVCQyVCQyU0MEFmdGVyQ2xhc3MlRTclOUElODQlRTUlOEElOUYlRTglODMlQkQlMkMlMjAlRTglQkYlOTklRTQlQjglQUElRTYlOTYlQjklRTYlQjMlOTUlRTYlOTglQUYlRTklOUQlOUUlRTklOUQlOTklRTYlODAlODElRTclOUElODQlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJsaXN0X2l0ZW0lMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJ1bnN0eWxlZCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU0JUI4JThEJUU4JUE2JTgxJUU3JTk0JUE4SnVuaXQlMkMlMjAlRTYlOTQlQjklRTclOTQlQThUZXN0TkclMkMlMjBUZXN0TkclRTklODclOEMlRTclOUElODRBZnRlckNsYXNzJUU2JTk4JUFGJUU5JTlEJTlFJUU5JTlEJTk5JUU2JTgwJTgxJUU3JTlBJTg0JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIybGlzdF9pdGVtJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIydW5zdHlsZWQlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNyU5NCVBOFNwcmluZyVFNyU5QSU4NFRlc3RFeGVjdXRpb25MaXN0ZW5lcnMlMkMlMjAlRTUlQUUlOUUlRTclOEUlQjAlRTQlQjglQUFMaXN0ZW5lciUyQyUyMCVFOSU4NyU4QyVFOSU5RCVBMiVFNCVCOSU5RiVFNiU5QyU4OSVFNCVCOCVBQSVFNyVCMSVCQiVFNCVCQyVCQyVFOSU5RCU5RSVFOSU5RCU5OSVFNiU4MCU4MSVFNyU5QSU4NEFmdGVyQ2xhc3MlRTclOUElODQlRTUlQUUlOUUlRTclOEUlQjAlMkMlMjAlRTglQTYlODYlRTclOUIlOTYlRTUlQUUlOUUlRTclOEUlQjAlRTUlQjAlQjElRTglQTElOEMlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFNiU4MCU5RCVFOCVCNyVBRjIlRTclOUElODQlRTUlODclQTAlRTQlQjglQUElRTYlOTYlQjklRTYlQjMlOTUlRTklODMlQkQlRTUlOEYlQUYlRTQlQkIlQTUlRTUlQUUlOUUlRTclOEUlQjAlMkMlMjAlRTQlQkQlODYlRTYlOTglQUYlRTUlOEQlOTUlRTUlODUlODMlRTYlQjUlOEIlRTglQUYlOTVSdW5uZXIlRTklOUMlODAlRTglQTYlODElRTclOTQlQTglMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlMjJzeW50YXglMjIlM0ElMjJqYXZhJTIyJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9ibG9jayUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTQwUnVuV2l0aChUaGVvcmllcy5jbGFzcyklMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiVFOCU4MCU4QyVFNCVCOCU5NCVFNiU5NCVCOSVFNyU5NCVBOFRlc3RORyVFNSVCNyVBNSVFNyVBOCU4QiVFNiVCNSVBOSVFNSVBNCVBNyUyQyUyMCVFNSU4RiVBQSVFOCU4MyVCRCVFNiU5NCVCRSVFNSVCQyU4MyVFNiU4RSU4OSVFOCVCRiU5OSVFNCVCOCVBQSVFNiU4MCU5RCVFOCVCNyVBRiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU3JUJCJUE3JUU3JUJCJUFEJUU4JUI1JUIwJUU2JTgwJTlEJUU4JUI3JUFGMSUyQyUyMCVFNSU4RiVBQSVFOCU4MyVCRCVFNSU4RSVCQiVFNyVCQiU5NSVFOCVCRiU4N1NwcmluZyVFNyU5QSU4NCVFNCVCRSU5RCVFOCVCNSU5NiVFNiVCMyVBOCVFNSU4NSVBNSVFNyU5QSU4NHN0YXRpYyVFNSVBMyU4MSVFNSU5RSU5MiVFNCVCQSU4NiUyQyUyMCVFNSU4NSVCNyVFNCVCRCU5MyVFNCVCQiVBMyVFNyVBMCU4MSVFNSVBNiU4MiVFNCVCOCU4QiUzQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiUyMnN5bnRheCUyMiUzQSUyMmphdmElMjIlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2Jsb2NrJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjAlNDBBdXRvd2lyZWQlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyMCUyMCUyMHByaXZhdGUlMjBEZXN0aW5hdGlvbiUyMGRmc09wZXJhdGlvblF1ZXVlJTNCJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjBwcml2YXRlJTIwc3RhdGljJTIwRGVzdGluYXRpb24lMjBkZnNPcGVyYXRpb25RdWV1ZVN0YXRpYyUzQiUyMCUyRiUyRiUyMHN0YXRpYyUyMHZlcnNpb24lMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyMCUyMCUyMCU0MEF1dG93aXJlZCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwcHJpdmF0ZSUyME1lc3NhZ2VRdWV1ZUFQSSUyMG1lc3NhZ2VRdWV1ZUFQSSUzQiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwcHJpdmF0ZSUyMHN0YXRpYyUyME1lc3NhZ2VRdWV1ZUFQSSUyMG1lc3NhZ2VRdWV1ZUFQSVN0YXRpYyUzQiUyMCUyRiUyRiUyMHN0YXRpYyUyMHZlcnNpb24lMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjAlNDBQb3N0Q29uc3RydWN0JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjBwdWJsaWMlMjB2b2lkJTIwaW5pdCgpJTIwJTdCJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkZnNPcGVyYXRpb25RdWV1ZVN0YXRpYyUyMCUzRCUyMHRoaXMuZGZzT3BlcmF0aW9uUXVldWUlM0IlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG1lc3NhZ2VRdWV1ZUFQSVN0YXRpYyUyMCUzRCUyMHRoaXMubWVzc2FnZVF1ZXVlQVBJJTNCJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlN0QlNUQlN0QlNUQlN0QlMkMlN0IlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIya2luZCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJ0eXBlJTIyJTNBJTIyY29kZV9saW5lJTIyJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIydGV4dCUyMiUyQyUyMnJhbmdlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJyYW5nZSUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjAlMjAlMjAlN0QlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwJTQwQWZ0ZXJDbGFzcyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwcHVibGljJTIwc3RhdGljJTIwdm9pZCUyMGFmdGVyQ2xhc3MoKSUyMCU3QiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTWVzc2FnZVZPJTIwbWVzc2FnZVZPJTIwJTNEJTIwbWVzc2FnZVF1ZXVlQVBJU3RhdGljLnJlbW92ZURlc3RpbmF0aW9uKGRmc09wZXJhdGlvblF1ZXVlU3RhdGljKSUzQiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMmNvZGVfbGluZSUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3lzdGVtLm91dC5wcmludGxuKG1lc3NhZ2VWTyklM0IlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCU3RCU1RCU3RCU1RCU3RCUyQyU3QiUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJraW5kJTIyJTNBJTIyYmxvY2slMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlX2xpbmUlMjIlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMmtpbmQlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIycmFuZ2VzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnJhbmdlJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyMCUyMCUyMCU3RCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTVEJTdEJTJDJTdCJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMmtpbmQlMjIlM0ElMjJibG9jayUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIya2luZCUyMiUzQSUyMnRleHQlMjIlMkMlMjJyYW5nZXMlMjIlM0ElNUIlN0IlMjJraW5kJTIyJTNBJTIycmFuZ2UlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJUU1JTg1JUI2JUU1JUFFJTlFJUU1JUIwJUIxJUU2JTk4JUFGJUU3JTk0JUE4JUU0JUJBJTg2JTQwUG9zdENvbnN0cnVjdCUyMCVFNiU5RCVBNSVFNCVCOCVBQSVFNSU4MSVCNyVFNiVBMiU4MSVFNiU4RCVBMiVFNiU5RiVCMSVFOCU4MCU4QyVFNSVCNyVCMiUyQyUyMCVFNSVBNCU5QSVFNSVBMyVCMCVFNiU5OCU4RSVFNCVCOCVBQSVFOSU5RCU5OSVFNiU4MCU4MSVFNiU4OCU5MCVFNSU5MSU5OCVFNiU4QyU4NyVFNSU5MCU5MSVFOSU5RCU5RSVFOSU5RCU5OSVFNiU4MCU4MSVFNSVBRiVCOSVFOCVCMSVBMSUyQyUyMCVFNCVCOCVBNCVFOCU4MCU4NSVFNSU4NSVCNiVFNSVBRSU5RSVFNiU5OCVBRiVFNCVCOCU4MCVFNCVCOCVBQSVFNSVBRiVCOSVFOCVCMSVBMSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTdEJTVEJTdEJTVEJTdEJTVEJTdE" style="box-sizing: border-box; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;">S</span>pring榛樿涓嶅厑璁稿綾葷殑鍙橀噺, 涔熷氨鏄潤鎬佸彉閲忚繘琛屾敞鍏ユ搷浣? 浣嗘槸鍦ㄦ煇浜涘満鏅瘮濡傚崟鍏冩祴璇曠殑@AfterClass瑕佽闂敞鍏ュ璞? 鑰孞unit鐨勮繖涓柟娉曞繀欏繪槸闈欐佺殑, 涔熷氨浜х敓浜嗘倴璁?<p data-key="33745" style="box-sizing: border-box; margin: 0px 0px 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><span data-key="33744" style="box-sizing: border-box;"><span data-offset-key="33744-0" style="box-sizing: border-box;">瑙e喅鎬濊礬鏈変袱涓?</span></span></p><ul data-key="33762" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><li style="box-sizing: border-box;"><div data-key="33748" style="box-sizing: border-box;"><div data-key="33747" style="box-sizing: border-box; position: relative;"><span data-key="33746" style="box-sizing: border-box;"><span data-offset-key="33746-0" style="box-sizing: border-box;">鎬濊礬1: 鎯沖姙娉曞闈欐佸彉閲忔敞鍏? 涔熷氨鏄粫榪嘢pring鍙兘榪愯闈為潤鎬佸彉閲忔墠鑳芥敞鍏ヤ緷璧栫殑澹佸瀿</span></span></div></div></li><li style="box-sizing: border-box;"><div data-key="33761" style="box-sizing: border-box;"><div data-key="33750" style="box-sizing: border-box; position: relative;"><span data-key="33749" style="box-sizing: border-box;"><span data-offset-key="33749-0" style="box-sizing: border-box;">鎬濊礬2: 鎯沖姙娉旲AfterClass鏀歸犱負闈為潤鎬?/span></span></div><ul data-key="33760" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;"><li style="box-sizing: border-box;"><div data-key="33753" style="box-sizing: border-box;"><div data-key="33752" style="box-sizing: border-box; position: relative;"><span data-key="33751" style="box-sizing: border-box;"><span data-offset-key="33751-0" style="box-sizing: border-box;">瀹炵幇Junit RunListener, 瑕嗙洊testRunFinished鏂規硶, 榪欓噷鍘誨疄鐜扮被浼粿AfterClass鐨勫姛鑳? 榪欎釜鏂規硶鏄潪闈欐佺殑</span></span></div></div></li><li style="box-sizing: border-box;"><div data-key="33756" style="box-sizing: border-box;"><div data-key="33755" style="box-sizing: border-box; position: relative;"><span data-key="33754" style="box-sizing: border-box;"><span data-offset-key="33754-0" style="box-sizing: border-box;">涓嶈鐢↗unit, 鏀圭敤TestNG, TestNG閲岀殑AfterClass鏄潪闈欐佺殑</span></span></div></div></li><li style="box-sizing: border-box;"><div data-key="33759" style="box-sizing: border-box;"><div data-key="33758" style="box-sizing: border-box; position: relative;"><span data-key="33757" style="box-sizing: border-box;"><span data-offset-key="33757-0" style="box-sizing: border-box;">鐢⊿pring鐨凾estExecutionListeners, 瀹炵幇涓狶istener, 閲岄潰涔熸湁涓被浼奸潪闈欐佺殑AfterClass鐨勫疄鐜? 瑕嗙洊瀹炵幇灝辮</span></span></div></div></li></ul></div></li></ul><p data-key="33764" style="box-sizing: border-box; margin: 0px 0px 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><span data-key="33763" style="box-sizing: border-box;"><span data-offset-key="33763-0" style="box-sizing: border-box;">鎬濊礬2鐨勫嚑涓柟娉曢兘鍙互瀹炵幇, 浣嗘槸鍗曞厓嫻嬭瘯Runner闇瑕佺敤</span></span></p><div style="box-sizing: border-box; position: relative; color: #333333; font-family: Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: #ffffff;"><pre data-key="33767" style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; word-break: break-all; word-wrap: break-word; color: #333333; background-color: #f5f5f5; border: 1px solid #f5f5f5; border-radius: 2px;"><code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit; padding: 0px; color: inherit; background-color: transparent; border-radius: 0px; white-space: pre-wrap;"><div data-key="33766" style="box-sizing: border-box; position: relative;"><span data-key="33765" style="box-sizing: border-box;"><span data-offset-key="33765-0" style="box-sizing: border-box;"><span token="" annotation="" punctuation"="" style="box-sizing: border-box; color: #999999;">@RunWith</span></span><span data-offset-key="33765-1" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">(</span></span><span data-offset-key="33765-2" style="box-sizing: border-box;">Theories</span><span data-offset-key="33765-3" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33765-4" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">class</span></span><span data-offset-key="33765-5" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">)</span></span></span></div></code></pre></div><p data-key="33769" style="box-sizing: border-box; margin: 0px 0px 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><span data-key="33768" style="box-sizing: border-box;"><span data-offset-key="33768-0" style="box-sizing: border-box;">鑰屼笖鏀圭敤TestNG宸ョ▼嫻╁ぇ, 鍙兘鏀懼純鎺夎繖涓濊礬</span></span></p><p data-key="33771" style="box-sizing: border-box; margin: 0px 0px 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><span data-key="33770" style="box-sizing: border-box;"><span data-offset-key="33770-0" style="box-sizing: border-box;">緇х畫璧版濊礬1, 鍙兘鍘葷粫榪嘢pring鐨勪緷璧栨敞鍏ョ殑static澹佸瀿浜? 鍏蜂綋浠g爜濡備笅:</span></span></p><div style="box-sizing: border-box; position: relative; color: #333333; font-family: Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; background-color: #ffffff;"><pre data-key="33810" style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; word-break: break-all; word-wrap: break-word; color: #333333; background-color: #f5f5f5; border: 1px solid #f5f5f5; border-radius: 2px;"><code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: inherit; padding: 0px; color: inherit; background-color: transparent; border-radius: 0px; white-space: pre-wrap;"><div data-key="33773" style="box-sizing: border-box; position: relative;"><span data-key="33772" style="box-sizing: border-box;"> <span data-offset-key="33772-1" style="box-sizing: border-box;"><span token="" annotation="" punctuation"="" style="box-sizing: border-box; color: #999999;">@Autowired</span></span></span></div><div data-key="33775" style="box-sizing: border-box; position: relative;"><span data-key="33774" style="box-sizing: border-box;"> <span data-offset-key="33774-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">private</span></span><span data-offset-key="33774-2" style="box-sizing: border-box;"> Destination dfsOperationQueue</span><span data-offset-key="33774-3" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span></span></div><div data-key="33777" style="box-sizing: border-box; position: relative;"><span data-key="33776" style="box-sizing: border-box;"> <span data-offset-key="33776-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">private</span></span> <span data-offset-key="33776-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">static</span></span><span data-offset-key="33776-4" style="box-sizing: border-box;"> Destination dfsOperationQueueStatic</span><span data-offset-key="33776-5" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span> <span data-offset-key="33776-7" style="box-sizing: border-box;"><span token="" comment="" "="" style="box-sizing: border-box; color: #708090;">// static version</span></span></span></div><div data-key="33779" style="box-sizing: border-box; position: relative;"><span data-key="33778" style="box-sizing: border-box;"> <span data-offset-key="33778-1" style="box-sizing: border-box;"><span token="" annotation="" punctuation"="" style="box-sizing: border-box; color: #999999;">@Autowired</span></span></span></div><div data-key="33781" style="box-sizing: border-box; position: relative;"><span data-key="33780" style="box-sizing: border-box;"> <span data-offset-key="33780-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">private</span></span><span data-offset-key="33780-2" style="box-sizing: border-box;"> MessageQueueAPI messageQueueAPI</span><span data-offset-key="33780-3" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span></span></div><div data-key="33783" style="box-sizing: border-box; position: relative;"><span data-key="33782" style="box-sizing: border-box;"> <span data-offset-key="33782-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">private</span></span> <span data-offset-key="33782-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">static</span></span><span data-offset-key="33782-4" style="box-sizing: border-box;"> MessageQueueAPI messageQueueAPIStatic</span><span data-offset-key="33782-5" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span> <span data-offset-key="33782-7" style="box-sizing: border-box;"><span token="" comment="" "="" style="box-sizing: border-box; color: #708090;">// static version</span></span></span></div><div data-key="33785" style="box-sizing: border-box; position: relative;"><span data-key="33784" style="box-sizing: border-box;"><span data-offset-key="33784-0" style="box-sizing: border-box;"><br style="box-sizing: border-box;" /></span></span></div><div data-key="33787" style="box-sizing: border-box; position: relative;"><span data-key="33786" style="box-sizing: border-box;"><span data-offset-key="33786-0" style="box-sizing: border-box;"><br style="box-sizing: border-box;" /></span></span></div><div data-key="33789" style="box-sizing: border-box; position: relative;"><span data-key="33788" style="box-sizing: border-box;"> <span data-offset-key="33788-1" style="box-sizing: border-box;"><span token="" annotation="" punctuation"="" style="box-sizing: border-box; color: #999999;">@PostConstruct</span></span></span></div><div data-key="33791" style="box-sizing: border-box; position: relative;"><span data-key="33790" style="box-sizing: border-box;"> <span data-offset-key="33790-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">public</span></span> <span data-offset-key="33790-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">void</span></span> <span data-offset-key="33790-5" style="box-sizing: border-box;"><span token="" function="" "="" style="box-sizing: border-box; color: #dd4a68;">init</span></span><span data-offset-key="33790-6" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">()</span></span> <span data-offset-key="33790-8" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">{</span></span></span></div><div data-key="33793" style="box-sizing: border-box; position: relative;"><span data-key="33792" style="box-sizing: border-box;"><span data-offset-key="33792-0" style="box-sizing: border-box;"> dfsOperationQueueStatic </span><span data-offset-key="33792-1" style="box-sizing: border-box;"><span token="" operator="" "="" style="box-sizing: border-box; color: #a67f59; background: rgba(255, 255, 255, 0.498039);">=</span></span> <span data-offset-key="33792-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">this</span></span><span data-offset-key="33792-4" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33792-5" style="box-sizing: border-box;">dfsOperationQueue</span><span data-offset-key="33792-6" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span></span></div><div data-key="33795" style="box-sizing: border-box; position: relative;"><span data-key="33794" style="box-sizing: border-box;"><span data-offset-key="33794-0" style="box-sizing: border-box;"> messageQueueAPIStatic </span><span data-offset-key="33794-1" style="box-sizing: border-box;"><span token="" operator="" "="" style="box-sizing: border-box; color: #a67f59; background: rgba(255, 255, 255, 0.498039);">=</span></span> <span data-offset-key="33794-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">this</span></span><span data-offset-key="33794-4" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33794-5" style="box-sizing: border-box;">messageQueueAPI</span><span data-offset-key="33794-6" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">;</span></span></span></div><div data-key="33797" style="box-sizing: border-box; position: relative;"><span data-key="33796" style="box-sizing: border-box;"> <span data-offset-key="33796-1" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">}</span></span></span></div><div data-key="33799" style="box-sizing: border-box; position: relative;"><span data-key="33798" style="box-sizing: border-box;"><span data-offset-key="33798-0" style="box-sizing: border-box;"><br style="box-sizing: border-box;" /></span></span></div><div data-key="33801" style="box-sizing: border-box; position: relative;"><span data-key="33800" style="box-sizing: border-box;"> <span data-offset-key="33800-1" style="box-sizing: border-box;"><span token="" annotation="" punctuation"="" style="box-sizing: border-box; color: #999999;">@AfterClass</span></span></span></div><div data-key="33803" style="box-sizing: border-box; position: relative;"><span data-key="33802" style="box-sizing: border-box;"> <span data-offset-key="33802-1" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">public</span></span> <span data-offset-key="33802-3" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">static</span></span> <span data-offset-key="33802-5" style="box-sizing: border-box;"><span token="" keyword="" "="" style="box-sizing: border-box; color: #0077aa;">void</span></span> <span data-offset-key="33802-7" style="box-sizing: border-box;"><span token="" function="" "="" style="box-sizing: border-box; color: #dd4a68;">afterClass</span></span><span data-offset-key="33802-8" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">()</span></span> <span data-offset-key="33802-10" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">{</span></span></span></div><div data-key="33805" style="box-sizing: border-box; position: relative;"><span data-key="33804" style="box-sizing: border-box;"><span data-offset-key="33804-0" style="box-sizing: border-box;"> MessageVO messageVO </span><span data-offset-key="33804-1" style="box-sizing: border-box;"><span token="" operator="" "="" style="box-sizing: border-box; color: #a67f59; background: rgba(255, 255, 255, 0.498039);">=</span></span><span data-offset-key="33804-2" style="box-sizing: border-box;"> messageQueueAPIStatic</span><span data-offset-key="33804-3" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33804-4" style="box-sizing: border-box;"><span token="" function="" "="" style="box-sizing: border-box; color: #dd4a68;">removeDestination</span></span><span data-offset-key="33804-5" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">(</span></span><span data-offset-key="33804-6" style="box-sizing: border-box;">dfsOperationQueueStatic</span><span data-offset-key="33804-7" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">);</span></span></span></div><div data-key="33807" style="box-sizing: border-box; position: relative;"><span data-key="33806" style="box-sizing: border-box;"><span data-offset-key="33806-0" style="box-sizing: border-box;"> System</span><span data-offset-key="33806-1" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33806-2" style="box-sizing: border-box;">out</span><span data-offset-key="33806-3" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">.</span></span><span data-offset-key="33806-4" style="box-sizing: border-box;"><span token="" function="" "="" style="box-sizing: border-box; color: #dd4a68;">println</span></span><span data-offset-key="33806-5" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">(</span></span><span data-offset-key="33806-6" style="box-sizing: border-box;">messageVO</span><span data-offset-key="33806-7" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">);</span></span></span></div><div data-key="33809" style="box-sizing: border-box; position: relative;"><span data-key="33808" style="box-sizing: border-box;"> <span data-offset-key="33808-1" style="box-sizing: border-box;"><span token="" punctuation="" "="" style="box-sizing: border-box; color: #999999;">}</span></span></span></div></code></pre></div><p data-key="33812" style="box-sizing: border-box; margin: 0px 0px 10px; color: #333333; font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: 0.3px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;"><span data-key="33811" style="box-sizing: border-box;"><span data-offset-key="33811-0" style="box-sizing: border-box;">鍏跺疄灝辨槸鐢ㄤ簡@PostConstruct 鏉ヤ釜鍋鋒鎹㈡煴鑰屽凡, 澶氬0鏄庝釜闈欐佹垚鍛樻寚鍚戦潪闈欐佸璞? 涓よ呭叾瀹炴槸涓涓璞?/span></span></p></div><img src ="http://m.tkk7.com/miaoyachun/aggbug/432461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2017-04-15 10:32 <a href="http://m.tkk7.com/miaoyachun/archive/2017/04/15/432461.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>閫氳繃rest api綆$悊activemqhttp://m.tkk7.com/miaoyachun/archive/2016/10/22/431914.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Sat, 22 Oct 2016 09:31:00 GMThttp://m.tkk7.com/miaoyachun/archive/2016/10/22/431914.htmlhttp://m.tkk7.com/miaoyachun/comments/431914.htmlhttp://m.tkk7.com/miaoyachun/archive/2016/10/22/431914.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/431914.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/431914.html

鐭ラ亾activemq鐜板湪宸茬粡鏀寔浜唕est api, 浣嗘槸瀹樻柟瀵硅繖閮ㄥ垎鐨勪粙緇嶄竴絎斿甫榪?(http://activemq.apache.org/rest.html),


閫氳繃google灞呯劧涔熸病鎼滃埌涓浜涙湁鐢ㄧ殑, 姣斿鍍忓垹闄や竴涓猟estination, 閮芥槸闂殑澶?鐒跺悗娌′笅鏂? 浜庢槸鑺變簡涓浜涘績鎬濈爺絀朵簡涓涓?


棣栧厛閫氳繃rest api鑾峰彇褰撳墠鐗堟湰鎵鏈夊凡鏀寔鐨勫崗璁?/p>

    http://172.30.43.206:8161/api/jolokia/list


鐒跺悗鏍規嵁json杈撳嚭鍏充簬removeTopic, removeQueue鐨刴bean瀹炵幇閫氳繃rest api鍒犻櫎destination鐨勬柟娉? 娉ㄦ剰鍒扮敤GET璇鋒眰鑰屼笉鏄疨OST,涓嶇劧浼氭姤閿?(瀹樼綉鐨勪緥瀛愰噷鐢ㄧ殑wget緇欑殑鐏墊劅, 寮濮嬬敤浜哖OST鑰佹姤閿?


import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.DefaultHttpClient;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import javax.jms.Destination;
import javax.jms.JMSException;
import java.util.Arrays;


public class MessageQueueAdmin {
    
private static final RestTemplate restTemplate = getRestTemplate("admin""admin");

    
private static String brokerHost = "172.30.43.206";
    
private static String adminConsolePort = "8161";
    
private static String protocol = "http";

    
public static void removeDestination(Destination destination) throws JMSException {
        String destName, destType;
        
if (destination instanceof ActiveMQQueue) {
            destName 
= ((ActiveMQQueue) destination).getQueueName();
            destType 
= "Queue";
        } 
else {
            destName 
= ((ActiveMQTopic) destination).getTopicName();
            destType 
= "Topic";
        }

        
// build urls
        String url = String.format("%s://%s:%s/api/jolokia/exec/org.apache.activemq:" +
                
"brokerName=localhost,type=Broker/remove%s/%s", protocol, brokerHost, adminConsolePort, destType, destName);
        System.out.println(url);
        
// do operation
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        HttpEntity
<String> entity = new HttpEntity<String>("parameters", headers);
        ResponseEntity response 
= restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
        System.out.println(response.getBody());
    }

    
public static void main(String[] args) throws JMSException {
        ActiveMQTopic topic 
= new ActiveMQTopic("test-activemq-topic");
        removeDestination(topic);
    }


    
private static RestTemplate getRestTemplate(String user, String password) {
        DefaultHttpClient httpClient 
= new DefaultHttpClient();
        BasicCredentialsProvider credentialsProvider 
= new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, 
new UsernamePasswordCredentials(user, password));
        httpClient.setCredentialsProvider(credentialsProvider);
        ClientHttpRequestFactory rf 
= new HttpComponentsClientHttpRequestFactory(httpClient);

        
return new RestTemplate(rf);
    }
}

鍏朵粬鐨勮姹?搴旇閮芥槸綾諱技jolokia鐨別xec get request鐨勬牸寮?


https://jolokia.org/reference/html/protocol.html#exec


<base url>/exec/<mbean name>/<operation name>/<arg1>/<arg2>/.


]]>
JmsTemplate CLIENT_ACKNOWLEDGE 妯″紡涓媟eceive娑堟伅鐨勯棶棰?/title><link>http://m.tkk7.com/miaoyachun/archive/2016/10/12/431885.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Wed, 12 Oct 2016 08:32:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2016/10/12/431885.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/431885.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2016/10/12/431885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/431885.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/431885.html</trackback:ping><description><![CDATA[鐢⊿pring JMS 鐨凧msTemplate浠庢秷鎭槦鍒楁秷璐規秷鎭椂鍙戠幇錛屼嬌鐢ㄤ簡CLIENT_ACKNOWLEDGE妯″紡錛屾秷鎭繑鍥炲悗鎬繪槸鑷姩琚玜ck錛屼篃灝辨槸琚玝roker "Dequeued"<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">    </span><span style="color: #0000FF; ">protected</span><span style="color: #000000; "> Message doReceive(Session session, MessageConsumer consumer) </span><span style="color: #0000FF; ">throws</span><span style="color: #000000; "> JMSException {<br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Use transaction timeout (if available).</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">            </span><span style="color: #0000FF; ">long</span><span style="color: #000000; "> timeout </span><span style="color: #000000; ">=</span><span style="color: #000000; "> getReceiveTimeout();<br />            JmsResourceHolder resourceHolder </span><span style="color: #000000; ">=</span><span style="color: #000000; "><br />                    (JmsResourceHolder) TransactionSynchronizationManager.getResource(getConnectionFactory());<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (resourceHolder </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; "> </span><span style="color: #000000; ">&&</span><span style="color: #000000; "> resourceHolder.hasTimeout()) {<br />                timeout </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Math.min(timeout, resourceHolder.getTimeToLiveInMillis());<br />            }<br />            Message message </span><span style="color: #000000; ">=</span><span style="color: #000000; "> doReceive(consumer, timeout);<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (session.getTransacted()) {<br />                </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Commit necessary - but avoid commit call within a JTA transaction.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (isSessionLocallyTransacted(session)) {<br />                    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Transacted session created by this template -> commit.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">                    JmsUtils.commitIfNecessary(session);<br />                }<br />            }<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (isClientAcknowledge(session)) {<br />                </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Manually acknowledge message, if any.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (message </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">) {<br />                    message.acknowledge();<br />                }<br />            }<br />            </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> message;<br />        }<br />        </span><span style="color: #0000FF; ">finally</span><span style="color: #000000; "> {<br />            JmsUtils.closeMessageConsumer(consumer);<br />        }<br />    }<br /></span></div><br />浣嗘槸浣跨敤寮傛listener 灝變笉浼氬嚭鐜拌繖涓儏鍐碉紝鎼滀簡涓媑oogle錛屽彂鐜版灉鐒跺瓨鍦ㄨ繖涓棶棰?br /><br /><div>     https://jira.spring.io/browse/SPR-12995<br />     https://jira.spring.io/browse/SPR-13255<br />     http://louisling.iteye.com/blog/241073</div><br />鍚屾鏂瑰紡鎷夊彇娑堟伅錛屾殏鏃舵病鎵懼埌濂界殑灝佽錛屽彧鑳芥殏鏃剁敤榪欍傛垨鑰呭敖閲忕敤listener, 榪欎釜闂鏆傛椂鏍囪涓嬶紝鎴栬呰皝鏈夋洿濂界殑瑙e喅鏂規鍙互comment鎴?img src ="http://m.tkk7.com/miaoyachun/aggbug/431885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2016-10-12 16:32 <a href="http://m.tkk7.com/miaoyachun/archive/2016/10/12/431885.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring涓璫lasspath涓巆lasspath*鐨勫尯鍒?/title><link>http://m.tkk7.com/miaoyachun/archive/2016/05/26/430666.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Thu, 26 May 2016 06:14:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2016/05/26/430666.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/430666.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2016/05/26/430666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/430666.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/430666.html</trackback:ping><description><![CDATA[<div><div>http://stackoverflow.com/questions/3294423/spring-classpath-prefix-difference</div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; "><br />   <br /><br />SIMPLE DEFINITION<br /><br />The classpath*:conf/appContext.xml simply means that all appContext.xml files under conf folders in all your jars on the classpath will be picked up and joined into one big application context.<br /><br />In contrast</span><span style="color: #000000; ">,</span><span style="color: #000000; "> classpath:conf/appContext.xml will load only one such file<img src="http://m.tkk7.com/Images/dot.gif" alt="" /> the first one found on your classpath.<br /></span></div> </div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><div><pre style="background-color:#ffffff;color:#000000;font-family:'瀹嬩綋';font-size:9.8pt;"><span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">bean </span><span style="color:#0000ff;background-color:#efefef;font-weight:bold;">id</span><span style="color:#008000;background-color:#efefef;font-weight:bold;">="propertyConfigurer"<br /></span> <span style="color:#0000ff;background-color:#efefef;font-weight:bold;">class</span><span style="color:#008000;background-color:#efefef;font-weight:bold;">="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">property </span><span style="color:#0000ff;background-color:#efefef;font-weight:bold;">name</span><span style="color:#008000;background-color:#efefef;font-weight:bold;">="locations"</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">list</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">value</span><span style="background-color:#efefef;">></span>classpath:*.properties<span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">value</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">value</span><span style="background-color:#efefef;">></span>classpath*:*.properties<span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">value</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">list</span><span style="background-color:#efefef;">></span><br /> <span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">property</span><span style="background-color:#efefef;">></span><br /><span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">bean</span><span style="background-color:#efefef;">></span></pre></div></div><br /><img src ="http://m.tkk7.com/miaoyachun/aggbug/430666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2016-05-26 14:14 <a href="http://m.tkk7.com/miaoyachun/archive/2016/05/26/430666.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>When launched from .exe IDEA looks for Java in a following orderhttp://m.tkk7.com/miaoyachun/archive/2016/05/16/430516.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Mon, 16 May 2016 00:49:00 GMThttp://m.tkk7.com/miaoyachun/archive/2016/05/16/430516.htmlhttp://m.tkk7.com/miaoyachun/comments/430516.htmlhttp://m.tkk7.com/miaoyachun/archive/2016/05/16/430516.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/430516.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/430516.html
  1. IDEA_JDK (or IDEA_JDK_64) environment variable
  2. jre/ (or jre64/) directory in IDEA home
  3. registry
  4. JDK_HOME environment variable
  5. JAVA_HOME environment variable


]]>
java淇敼stdout鐨勫巻鍙茶緭鍑?/title><link>http://m.tkk7.com/miaoyachun/archive/2016/04/21/430179.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Thu, 21 Apr 2016 09:06:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2016/04/21/430179.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/430179.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2016/04/21/430179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/430179.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/430179.html</trackback:ping><description><![CDATA[java閲屽浣曚慨鏀筩onsole鐨勫巻鍙茶緭鍑轟俊鎭憿錛熷鏋滄槸褰撳墠琛岀殑淇敼鍙互綆鍗曟兂鍒?\r"鐨勬柟妗堬紝浣嗘槸濡傛灉瑕佷慨鏀逛笂涓琛屽憿? google浜嗕笅鍘熸潵榪樻槸鏈夋柟娉曠殑錛岄渶瑕佺敤鍒癮nsi鐨刢ontrol sequences<br /><a title="ANSI code" >ANSI code</a><br /><br />鐢╦ava鍐欎簡涓畝鍗曠殑渚嬪瓙錛屼緥瀛愬氨鏄妸鏇劇粡鐨刼utput淇敼涓哄叾浠栧瓧絎︿覆騫舵仮澶嶄箣鍚庣殑鎵撳嵃錛屼唬鐮侀噷鍔犱簡sleep錛屼富瑕佹柟渚跨悊瑙e悇縐嶆帶鍒跺簭鍒楃殑鍚箟<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">print some test messages</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">22</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">333</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">4444</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br /><br />        </span><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />         * modify "333" to "-"<br />         </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Move up two lines</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> count </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br />        System.out.print(String.format(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\033[%dA</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, count));<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Erase current line content</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        System.out.print(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\033[2K</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> update with new content</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        System.out.print(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">-</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Move down two lines</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        System.out.print(String.format(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\033[%dB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, count));<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Move cursor to left beginning</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        System.out.print(String.format(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\033[D</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, count));<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> continue print others</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">55555</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        Thread.sleep(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);</span></div><img src ="http://m.tkk7.com/miaoyachun/aggbug/430179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2016-04-21 17:06 <a href="http://m.tkk7.com/miaoyachun/archive/2016/04/21/430179.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>zookeeper瀛︿範http://m.tkk7.com/miaoyachun/archive/2016/03/31/429913.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Thu, 31 Mar 2016 06:06:00 GMThttp://m.tkk7.com/miaoyachun/archive/2016/03/31/429913.htmlhttp://m.tkk7.com/miaoyachun/comments/429913.htmlhttp://m.tkk7.com/miaoyachun/archive/2016/03/31/429913.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/429913.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/429913.html2. 璇︾粏浠嬬粛 http://blog.csdn.net/xhh198781/article/details/10949697

]]>
Spring boot 寮鍚痳eponse鍘嬬緝浠ュ強閮ㄥ垎鍙傛暟璁劇疆http://m.tkk7.com/miaoyachun/archive/2016/03/29/429861.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Tue, 29 Mar 2016 03:50:00 GMThttp://m.tkk7.com/miaoyachun/archive/2016/03/29/429861.htmlhttp://m.tkk7.com/miaoyachun/comments/429861.htmlhttp://m.tkk7.com/miaoyachun/archive/2016/03/29/429861.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/429861.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/429861.html
server.compression.enabled=true 
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
server.compression.min-response-size=4096
絎竴涓弬鏁版墦寮鍘嬬緝寮鍏籌紝絎簩涓弬鏁版坊鍔爅son reponse錛堝挨鍏舵槸涓簉est api錛?絎笁涓弬鏁版槸鏍規嵁reponse鐨勫ぇ灝忚緗惎鐢ㄥ帇緙╃殑鏈灝忓?榛樿鏄?K錛岃嚜宸辨牴鎹疄闄呮儏鍐佃皟鏁?

鍙傝?div>http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#how-to-enable-http-response-compression

]]>
鍏充簬java榛樿鐨勭被鍔犺澆鍣ㄧ殑綆鍗曚唬鐮佺爺絀?/title><link>http://m.tkk7.com/miaoyachun/archive/2016/03/16/429685.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Wed, 16 Mar 2016 07:40:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2016/03/16/429685.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/429685.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2016/03/16/429685.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/429685.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/429685.html</trackback:ping><description><![CDATA[1. 榛樿鐨?涓猚lassloader: BootstrapClassloader (Native瀹炵幇)錛?ExtClassloader, AppClassloader (Java瀹炵幇)<br />2. 3涓姞杞藉櫒騫朵笉鏄湡姝g殑鐖跺瓙緇ф壙鍏崇郴錛岃屾槸閫昏緫涓婄殑錛孞VM鍚姩鍏堝垱寤篍xtClassloader instance錛岀劧鍚庢瀯閫燗ppClassloader鐨勬椂鍊欎紶鍏xtClassloader瀹炰緥浣滀負parent<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">        Launcher.ExtClassLoader extcl;<br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            extcl </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Launcher.ExtClassLoader.getExtClassLoader();<br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (IOException var10) {<br />            </span><span style="color: #0000FF; ">throw</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> InternalError(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Could not create extension class loader</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, var10);<br />        }<br /><br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.loader </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Launcher.AppClassLoader.getAppClassLoader(extcl);<br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (IOException var9) {<br />            </span><span style="color: #0000FF; ">throw</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> InternalError(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Could not create application class loader</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, var9);<br />        }</span></div><br />鍏充簬鍙屼翰濮旀淳鍘熺悊錛?鍦ㄥ姞杞界被鐨勬椂鍊欙紝浼氱湅鐪媝arent鏈夋病鏈夎瀹氾紝濡傛灉璁懼畾浜?灝辮皟鐢╬arent.loadClass鏂規硶錛屽鏋滄病璁懼畾(==null)涔熷氨鏄痯arent搴旇鏄疊ootstrapClassloader, 浼氳皟鐢╪ative鐨刦indBootstrapClass鏉ュ姞杞界被錛屼唬鐮侊細<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">                </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />                    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.parent </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">) {<br />                        c </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.parent.loadClass(name, </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">);<br />                    } </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {<br />                        c </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.findBootstrapClassOrNull(name);<br />                    }<br />                } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (ClassNotFoundException var10) {<br />                    ;<br />                }<br /></span></div><br />鐩殑鏄寜鐓т竴瀹氫紭鍏堢駭鍒杞界郴緇熺殑lib錛岀郴緇焑xt鐩綍鐨刲ib錛屼互鍙奵lasspath鐨刲ib錛岄槻姝㈢郴緇熺殑榛樿琛屼負鎴栬呯被鐨勫疄鐜拌淇敼銆?br /><br />3. java 綾葷殑鍔ㄦ佸姞杞?br /><div>Java鍐呯疆鐨凜lassLoader鎬諱細鍦ㄥ姞杞戒竴涓狢lass涔嬪墠媯鏌ヨ繖涓狢lass鏄惁宸茬粡琚姞杞借繃錛屽凡緇忚鍔犺澆榪囩殑Class涓嶄細鍔犺澆絎簩嬈°傚洜姝よ鎯抽噸鏂板姞杞紺lass錛屾垜浠渶瑕佸疄鐜拌嚜宸辯殑ClassLoader銆?<br />鍙﹀涓涓棶棰樻槸錛屾瘡涓鍔犺澆鐨凜lass閮介渶瑕佽閾炬帴(link)錛岃繖鏄氳繃鎵цClassLoader.resolve()鏉ュ疄鐜扮殑錛岃繖涓柟娉曟槸 final鐨勶紝鍥犳鏃犳硶閲嶅啓銆俁esove()鏂規硶涓嶅厑璁鎬竴涓狢lassLoader瀹炰緥link涓涓狢lass涓ゆ錛屽洜姝わ紝褰撲綘闇瑕侀噸鏂板姞杞戒竴涓? Class鐨勬椂鍊欙紝浣犻渶瑕侀噸鏂癗ew涓涓綘鑷繁鐨凜lassLoader瀹炰緥銆?</div><img src ="http://m.tkk7.com/miaoyachun/aggbug/429685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2016-03-16 15:40 <a href="http://m.tkk7.com/miaoyachun/archive/2016/03/16/429685.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>欏圭洰涓敤鍒扮殑涓浜沵aven鎻掍歡鎬葷粨http://m.tkk7.com/miaoyachun/archive/2016/01/26/429206.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Tue, 26 Jan 2016 03:41:00 GMThttp://m.tkk7.com/miaoyachun/archive/2016/01/26/429206.htmlhttp://m.tkk7.com/miaoyachun/comments/429206.htmlhttp://m.tkk7.com/miaoyachun/archive/2016/01/26/429206.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/429206.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/429206.html


maven-shade-plugin 鐢ㄦ潵鎵撳彲鎵цjar鍖咃紝 鍙互鎶婃墍鏈変緷璧栫殑涓夋柟搴撻兘鍖呮嫭榪涙潵
exec-maven-plugin 鍙互鎵ц澶栭儴鍛戒護錛?nbsp;鍦ㄩ」鐩腑瀵筽ython浠g爜榪涜緙栬瘧錛?nbsp;閰嶅悎maven-assembly-plugin鏉ョ敓鎴恜ackage
maven-assembly-plugin 鐢ㄦ潵鏋勫緩欏圭洰鍙戣鍖咃紝 瑕侀厤鍚坸ml閰嶇疆鏂囦歡鏉ョ粍緇囧寘鐨勭粨鏋勶紝鍩烘湰鎬濊礬鏄粠build鐜copy鍒皁utputDirectory
license-maven-plugin 鐢ㄦ潵鐢熸垚欏圭洰鐢ㄥ埌鐨?鏂瑰簱鐨勭増鏉冩眹鎬?nbsp;鎴栬呭叾浠栫殑涓浜涚敤娉?br />maven-dependency-plugin 鐢ㄦ潵鐢熸垚欏圭洰搴撲箣闂寸殑渚濊禆鍏崇郴
appassembler-maven-plugin 鍙互涓洪」鐩敓鎴愪紭闆呯殑鍚姩鑴氭湰 鏀寔linux/win
rpm-maven-plugin 鐢ㄦ潵涓洪」鐩瀯寤簉pm瀹夎鍖?br />maven-compiler-plugin 鎸囧畾欏圭洰鐨刯dk鐨勭紪璇戝吋瀹圭増鏈互鍙奺ncoding綾誨埆


]]>
Idea 榪滅▼璋冨紡閬囧埌浣跨敤exec maven 鎻掍歡涓嶈兘鍛戒腑鏂偣鐨勯棶棰?/title><link>http://m.tkk7.com/miaoyachun/archive/2015/10/21/427858.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Wed, 21 Oct 2015 09:12:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2015/10/21/427858.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/427858.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2015/10/21/427858.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/427858.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/427858.html</trackback:ping><description><![CDATA[欏圭洰鐢╩vn exec:exec鎸囦護鏉ュ惎鍔╯erver, 宸ヤ綔涓渶瑕佽皟寮弒erver鍒濆鍖栫殑榪囩▼, 寰堝鏄撴兂鍒癿vnDebug, 浣嗘槸鍙戠幇璁劇疆鐨勬柇鐐歸兘娌℃湁hit, 鍙嶅璋冨紡澶氭閮芥槸濡傛,鎶樿吘浜?涓灝忔椂, 紿佺劧鐪嬪埌stackoverflow 涓婃湁浜鴻exec:exec鏄嫭绔嬭繘紼嬫ā寮? mvnDebug鐨勪竴浜沝ebug閫夐」閮借append鍒頒簡鐖惰繘紼嬩簡. idea璁劇疆鏂偣灝辯劧騫跺嵉浜?<br /><br />鐭ラ亾浜嗛棶棰樻墍鍦ㄨВ鍐沖氨瀹規槗浜? 鍙淇敼pom.xml, 鐒跺悗鐩存帴mvn exec:exec灝辮兘姝e父璋冨紡浜?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">            <build><br />                <plugins><br />                    <plugin><br />                        <groupId>org.codehaus.mojo</groupId><br />                        <artifactId>exec-maven-plugin</artifactId><br />                        <version>${mvnexec.version}</version><br />                        <executions><br />                            <execution><br />                                <goals><br />                                    <goal>exec</goal><br />                                </goals><br />                            </execution><br />                        </executions><br />                        <configuration><br />                            <includeProjectDependencies>true</includeProjectDependencies><br />                            <executable>java</executable><br />                            <workingDirectory>${basedir}/config/sim</workingDirectory><br />                            <classpathScope>runtime</classpathScope><br />                            <arguments><br />                                <argument>-agentlib:jdwp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">transport</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dt_socket</span><span style="color: #000000; ">,</span><span style="color: #000000; ">server</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y</span><span style="color: #000000; ">,</span><span style="color: #000000; ">suspend</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y</span><span style="color: #000000; ">,</span><span style="color: #000000; ">address</span><span style="color: #000000; ">=</span><span style="color: #000000; ">4000</span><span style="color: #000000; "></argument><br />                                <argument>-classpath</argument><br />                                <classpath/><br />                                <argument>com.ymiao.Main</argument><br />                                <argument>server</argument><br />                                <argument>${basedir}/config/sim/sim.yml</argument><br />                            </arguments><br />                        </configuration><br />                    </plugin><br />                </plugins><br />            </build><br /></span></div><br />鎬葷粨灝辨槸exec:exec鏄鐙珛涓涓柊榪涚▼鏉ユ墽琛岀▼搴忕殑, exec:java灝辯浉鍙? 鍏跺疄鐢╩vnDebug + exec:java涔熸槸鐞嗚鍙鐨?img src ="http://m.tkk7.com/miaoyachun/aggbug/427858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2015-10-21 17:12 <a href="http://m.tkk7.com/miaoyachun/archive/2015/10/21/427858.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬jconsole鏄劇ず鑷畾涔夌殑MBeanhttp://m.tkk7.com/miaoyachun/archive/2015/09/08/427184.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Tue, 08 Sep 2015 02:53:00 GMThttp://m.tkk7.com/miaoyachun/archive/2015/09/08/427184.htmlhttp://m.tkk7.com/miaoyachun/comments/427184.htmlhttp://m.tkk7.com/miaoyachun/archive/2015/09/08/427184.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/427184.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/427184.html
  1. 鑷畾涔夌殑Mbean鐨勬櫘閫歮ethod鑳藉湪jconsole鐨凪beans閲屾樉紺哄嚭鏉ワ紝浣嗘槸娑夊強鍒癵eters/seters灝辨棤娉曟樉紺轟簡
  2. 濡傛灉MBean娉ㄥ唽鍒頒笅闈㈠艦寮忓垱寤虹殑MBeanServer鍦↗console涓婃棤娉曟樉紺虹殑
    MBeanServer server = MBeanServerFactory.createMBeanServer();
    浣嗘槸濡傛灉娉ㄥ唽鍒頒笅闈㈢殑褰㈠紡鍒涘緩鐨凷erver鍦↗console涓婃槸鍙互鏄劇ずMBean鐨?br />
    MBeanServer server = ManagementFactory.getPlatformMBeanServer();       

stackoverflow涓婁篃鏈変漢鍙戠幇榪欎釜闂

    http://stackoverflow.com/questions/7424009/mbeans-registered-to-mbean-server-not-showing-up-in-jconsole



]]>
java 甯擱噺姹犱粠jdk7寮濮嬩粠鏂規硶鍖鴻縼縐誨埌鍫嗗唴http://m.tkk7.com/miaoyachun/archive/2015/05/06/424894.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Wed, 06 May 2015 09:35:00 GMThttp://m.tkk7.com/miaoyachun/archive/2015/05/06/424894.htmlhttp://m.tkk7.com/miaoyachun/comments/424894.htmlhttp://m.tkk7.com/miaoyachun/archive/2015/05/06/424894.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/424894.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/424894.html浠巎dk7鏈寮濮嬬殑release version (http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html)鐨刵otes閲岀湅鍒?br />
Area: HotSpot
Synopsis: In JDK 7, interned strings are no longer allocated in the permanent generation of the Java heap, but are instead allocated in the main part of the Java heap (known as the young and old generations), along with the other objects created by the application. This change will result in more data residing in the main Java heap, and less data in the permanent generation, and thus may require heap sizes to be adjusted. Most applications will see only relatively small differences in heap usage due to this change, but larger applications that load many classes or make heavy use of the String.intern() method will see more significant differences.
RFE: 6962931


]]>
Ubuntu12.04s涓妀enkins鐢ㄥ惎鍔ㄨ剼鏈惎鍔ㄥけ璐ョ殑涓縐嶅師鍥?/title><link>http://m.tkk7.com/miaoyachun/archive/2015/02/28/423103.html</link><dc:creator>Milo鐨勬搗鍩?/dc:creator><author>Milo鐨勬搗鍩?/author><pubDate>Sat, 28 Feb 2015 08:51:00 GMT</pubDate><guid>http://m.tkk7.com/miaoyachun/archive/2015/02/28/423103.html</guid><wfw:comment>http://m.tkk7.com/miaoyachun/comments/423103.html</wfw:comment><comments>http://m.tkk7.com/miaoyachun/archive/2015/02/28/423103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/miaoyachun/comments/commentRss/423103.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/miaoyachun/services/trackbacks/423103.html</trackback:ping><description><![CDATA[<div> 浠婂ぉ鏈夊悓浜嬮棶涓轟粈涔坲buntu涓婂惎鍔╦enkins澶辮觸錛屾垜璁板緱涔嬪墠鐜╃殑鏃跺欏茍娌℃湁鍑虹幇榪欑鎯呭喌錛屼簬鏄窡韙簡涓嬶紝鏈緇堥敊璇俊鎭槸:<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">daemon: fatal: refusing to execute unsafe program: /usr/bin/java (/opt is group and world writable)</span></div><br />鏍規湰鍘熷洜鏄満鍣ㄨ浜嗗涓増鏈殑jdk, jdk鎵鍦ㄧ殑/opt鐖剁洰褰曠殑鏉冮檺鏀劇殑姣旇緝澶э紝鎸夌収daemon瑕佹眰鐨勯檺鍒跺埌755<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">chmod -R </span><span style="color: #000000; ">755</span><span style="color: #000000; "> /opt</span></div> </div><br />闂灝辮В鍐充簡銆?br /><br />鍏跺疄榪欎釜鍦烘櫙榪樻槸铔父瑙佺殑錛岄亣鍒扮殑浜哄簲璇ユ尯澶氱殑<br /><img src ="http://m.tkk7.com/miaoyachun/aggbug/423103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/miaoyachun/" target="_blank">Milo鐨勬搗鍩?/a> 2015-02-28 16:51 <a href="http://m.tkk7.com/miaoyachun/archive/2015/02/28/423103.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>valgrind memory check on java programhttp://m.tkk7.com/miaoyachun/archive/2013/12/06/407274.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Fri, 06 Dec 2013 02:26:00 GMThttp://m.tkk7.com/miaoyachun/archive/2013/12/06/407274.htmlhttp://m.tkk7.com/miaoyachun/comments/407274.htmlhttp://m.tkk7.com/miaoyachun/archive/2013/12/06/407274.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/407274.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/407274.html
valgrind --error-limit=no --trace-children=yes --smc-check=all --leak-check=full JAVA_CMD

鐗規剰鍐欎簡涓湁leak鐨刯ni鍑芥暟錛岀敤valgrind鎴愬姛媯鏌ュ嚭鏉ヤ簡
==31915== 100 bytes in 1 blocks are definitely lost in loss record 447 of 653
==31915==    at 0x402CE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==31915==    by 0x60424F9: Java_MyJNI_hello (MyJNI.c:16)

鍦ㄨ佺増鏈瑅algrind(3.5.0) enable浜?-trace-children閫夐」鍚庡彲鑳藉嚭鐜伴敊璇?
 Error occurred during initialization of VM    
Unknown x64 processor: SSE2 not supported

鍗囩駭鍒版渶鏂扮増鍙互瑙e喅榪欎釜闂錛屽崌綰ф柟娉曪細涓嬭澆src鍖?瑙e帇鍚庢墽琛?./configure; make; make install


]]>
maven鏈湴涓夋柟渚濊禆鍖呮彃浠禷ddjars-maven-pluginhttp://m.tkk7.com/miaoyachun/archive/2013/10/30/405795.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Wed, 30 Oct 2013 06:03:00 GMThttp://m.tkk7.com/miaoyachun/archive/2013/10/30/405795.htmlhttp://m.tkk7.com/miaoyachun/comments/405795.htmlhttp://m.tkk7.com/miaoyachun/archive/2013/10/30/405795.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/405795.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/405795.html
    <build>
        
<plugins>
            
<plugin>
                
<groupId>com.googlecode.addjars-maven-plugin</groupId>
                
<artifactId>addjars-maven-plugin</artifactId>
                
<version>1.0.2</version>
                
<executions>
                    
<execution>
                        
<goals>
                            
<goal>add-jars</goal>
                        
</goals>
                        
<configuration>
                            
<resources>
                                
<resource>
                                    
<directory>${basedir}/../lib</directory>
                                
</resource>
                            
</resources>
                        
</configuration>
                    
</execution>
                
</executions>
            
</plugin>
            
<plugin>
                
<groupId>org.apache.maven.plugins</groupId>
                
<artifactId>maven-assembly-plugin</artifactId>
                
<version>${maven.assembly.version}</version>
                
<configuration>
                    
<descriptorRefs>
                        
<descriptorRef>jar-with-dependencies</descriptorRef>
                    
</descriptorRefs>
                    
<appendAssemblyId>false</appendAssemblyId>
                
</configuration>
                
<executions>
                    
<execution>
                        
<phase>package</phase>
                        
<goals>
                            
<goal>single</goal>
                        
</goals>
                    
</execution>
                
</executions>
            
</plugin>
        
</plugins>
    
</build>

鎶婇」鐩腑渚濊禆鐨勪笁鏂筳ars鍏ㄦ斁鍒發ib鐩綍閲岋紝灝卞叏閮ㄤ細鎵撳寘鍒皉elease jar閲屼簡



]]>
鍙嶇紪璇慾ava class騫朵紭闆呯殑璋冭瘯http://m.tkk7.com/miaoyachun/archive/2013/02/22/395575.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Fri, 22 Feb 2013 07:01:00 GMThttp://m.tkk7.com/miaoyachun/archive/2013/02/22/395575.htmlhttp://m.tkk7.com/miaoyachun/comments/395575.htmlhttp://m.tkk7.com/miaoyachun/archive/2013/02/22/395575.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/395575.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/395575.html鐢╦d-eclipse 鎻掍歡鏉ュ弽緙栬瘧java class鏂囦歡鐨勮緭鍑鴻繕鏄尯nice鐨勶紝铏界劧闃呰鏂逛究浜?浣嗘槸瀵筪ebug紜犳垚涓瀹氱殑鍥版壈錛屼富瑕侀棶棰樻槸line number鐨勪笉match.
Google浜嗕笅閬囧埌綾諱技闂鐨勭湡涓嶅皯銆傛渶緇堟壘鍒頒簡瑙e喅鏂規錛?br />
http://sourceforge.net/projects/realignmentjd/files/
-----------------

1. Download JD-Eclipse and JD-GUI - http://java.decompiler.free.fr/ and install.
2. Put a file realignment.jd.ide.eclipse_1.0.2.jar in eclipse/plugins directory.
    To use Realignment feature it is necessary to open the menu Preferences/General/Editors/File Associations and to select "*.class" file type and to choose "Realignment for JD Class File Editor" for Associated editors.
    Another possibility is the batch realignment after processing JD-GUI. To work properly you must to switch on the property "Display line numbers" in Help/Preferences of JD-GUI.
    To use this feature it is necessary to open the menu Preferences/Java/Decompiler/Batch Realignment and click button "Open dialog". Existing limitation: the realignment is performed only for the methods.
    To work properly it is necessary that the property "Display line numbers" in menu "Preferences/Java/Decompiler" was active.


JD-Eclipse鎻掍歡 + realignment 琛ヤ竵璁╀紭闆呯殑debug class 鏂囦歡鎴愪負鍙兘銆?br />
濡傛灉鍙槸涓轟簡闃呰class浠g爜錛屽緩璁笉瑕佺敤realignment 琛ヤ竵錛岃繖鏍蜂細闄嶄綆浠g爜鐨勫彲璇繪э紙浼氬鍑哄ぇ閲忕殑絀鴻錛?br /> 


]]>
涓浜涢」鐩腑鐢ㄥ埌鐨刴vn渚嬪瓙http://m.tkk7.com/miaoyachun/archive/2013/01/10/394058.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Thu, 10 Jan 2013 05:33:00 GMThttp://m.tkk7.com/miaoyachun/archive/2013/01/10/394058.htmlhttp://m.tkk7.com/miaoyachun/comments/394058.htmlhttp://m.tkk7.com/miaoyachun/archive/2013/01/10/394058.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/394058.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/394058.htmlmvn 鎵ц澶栭儴鍛戒護
鍛戒護琛屾ā寮?br />
mvn exec:exec -Dexec.executable=sh -Dexec.workingdir=./bin -Dexec.args=hello.sh

閰嶇疆鏂囦歡褰㈠紡
                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>exec-maven-plugin</artifactId>
                                <executions>
                                        <execution>
                                                <id>test-exec</id>
                                                <phase>initialize</phase>
                                                <configuration>
                                                        <executable>sh</executable>
                                                        <workingDirectory>./bin</workingDirectory>
                                                        <arguments>
                                                                <argument>hello.sh</argument>
                                                        </arguments>
                                                </configuration>
                                                <goals>
                                                        <goal>exec</goal>
                                                </goals>
                                        </execution>
                                </executions>
                        </plugin>

mvn 鐢熸垚java欏圭洰
鐢熸垚楠ㄦ灦
mvn archetype:generate -DgroupId=com.abc.product -DartifactId=product -DpackageName=com.abc.product -DarchetypeArtifactId=maven-archetype-quickstart

杞垚eclipse鑳借瘑鍒殑java 欏圭洰
mvn eclipse:eclipse
瀵煎叆eclipse 鐒跺悗coding

mvn榪涜鍗曞厓嫻嬭瘯
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-surefire-plugin</artifactId>
                                <version>
2.12.4</version>
                                <configuration>
                                        <forkMode>pertest</forkMode>
                                        <excludes>
                                                <exclude>**/perftest/*.java</exclude>
                                        </excludes>
                                        <systemProperties>
                                                <property>
                                                        <name>log4j.configuration</name>
                                                        <value>target/test-classes/log4j.properties</value>
                                                </property>
                                        </systemProperties>
                                </configuration>
                        </plugin>

mvn榪涜code coverage緇熻
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>emma-maven-plugin</artifactId>
        <version>1.0-alpha-3</version>
        <inherited>true</inherited>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>surefire-report-maven-plugin</artifactId>
        <inherited>true</inherited>
      </plugin>
    </plugins>
  </reporting>

mvn鐢熸垚javadoc
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-javadoc-plugin</artifactId>
                                <version>
2.9</version>
                                <configuration>
                                        <show>private</show>
                                </configuration>
                                <executions>
                                        <execution>
                                                <id>attach-javadocs</id>
                                                <goals>
                                                        <goal>javadoc</goal>
                                                        <goal>test-javadoc</goal>
                                                </goals>
                                                <phase>site</phase>
                                        </execution>
                                </executions>
                        </plugin>



]]>
鍏充簬java.library.pathhttp://m.tkk7.com/miaoyachun/archive/2012/12/06/392529.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Thu, 06 Dec 2012 03:05:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/12/06/392529.htmlhttp://m.tkk7.com/miaoyachun/comments/392529.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/12/06/392529.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/392529.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/392529.html
鏈榪戦」鐩鐢↗NI, 娑夊強鍒扮敤java.library.path榪欎釜鍙傛暟錛屽紑濮嬩互涓哄彧瑕乴dconfig鑳借瘑鍒埌鐨剆o鏂囦歡java 涓瀹氳兘鎵懼埌錛屽彲鎯滃茍涓嶆槸榪欐牱銆傘?br />瑕佹兂java紼嬪簭鎵懼埌鍏變韓搴撹繕鏄鍦ㄦ墽琛宩ava紼嬪簭鐨勬椂鍊欐寚瀹歫ava.library.path錛岀敤eclipse鐨勮瘽鍙互璁劇疆濡備笅錛?br />
Properties->Run/Debug settings->Arguments->VM arguments
-----------------------------------------
-Djava.library.path=/home/miaoyachun/workspace/JNIC/Release
榪欎釜鏄紶緇熺殑鏂瑰紡錛実oogle浜嗕笅鏈変釜tricky鐨勬柟寮忚紼嬪簭鍔ㄦ佷慨鏀筳ava.library.path
    private static void loadJNILibDynamically() {
        
try {
            System.setProperty(
"java.library.path", System.getProperty("java.library.path")
                    
+ ":/home/miaoyachun/workspace/JNIC/Release/");
            Field fieldSysPath 
= ClassLoader.class.getDeclaredField("sys_paths");
            fieldSysPath.setAccessible(
true);
            fieldSysPath.set(
nullnull);

            System.loadLibrary(
"JNIC");
        } 
catch (Exception e) {
            
// do nothing for exception
        }
    }

浜嬪疄涓妉inux涓嬭繕鏈変釜鐜鍙橀噺LD_LIBRARY_PATH錛屽鏋渓ib鑳藉湪榪欎釜path閲屾壘鍒幫紝java.library.path灝變笉鐢ㄩ厤緗簡錛岃屼笖涓嶉渶瑕佸叧蹇僱ib涔嬮棿渚濊禆鐨勯棶棰樸俲ava.library.path鍦ㄨ繖鏂歸潰灝卞急寰堝錛屾瘮濡俵ib渚濊禆鍏朵粬鐩綍鐨刲ib絳夈?img src ="http://m.tkk7.com/miaoyachun/aggbug/392529.html" width = "1" height = "1" />

]]>
Ubuntu涓婄殑alternativeshttp://m.tkk7.com/miaoyachun/archive/2012/10/26/390260.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Fri, 26 Oct 2012 05:31:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/10/26/390260.htmlhttp://m.tkk7.com/miaoyachun/comments/390260.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/10/26/390260.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/390260.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/390260.html鍏充簬alternatives鐨勭敤娉?br />

alternatives --install /usr/bin/java java /opt/jdk1
.5.0_22/bin/java 15000
alternatives --install /usr/bin/javac javac /opt/jdk1
.5.0_22/bin/javac 15000
alternatives --config java
alternatives --config javac
鏈榪戝垏鎹㈡闈㈢幆澧冨埌ubuntu, 鍙戠幇alternatives榪欎釜宸ュ叿鏀瑰悕浜?update-alternatives
鐢ㄦ硶榪樻槸涓鏍風殑銆傘?br />

]]>
鐢↗NI浠嶤浼犻掔粨鏋勪綋鍒癑AVAhttp://m.tkk7.com/miaoyachun/archive/2012/10/12/389473.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Fri, 12 Oct 2012 08:40:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/10/12/389473.htmlhttp://m.tkk7.com/miaoyachun/comments/389473.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/10/12/389473.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/389473.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/389473.html 鐩存帴涓奀鐨勫疄鐜?br />
typedef struct Foo {
    
int len;
    
char name[100];
} Foo_t;

JNIEXPORT jint JNICALL
Java_TestJNI_foo(JNIEnv 
*env, jobject obj, jobject fooObj) {

    Foo_t 
* bar = malloc(sizeof(Foo_t));
    jclass clazz;
    jfieldID fid;

    
//init the bar data of C
    strcpy(bar->name, "Yachun Miao");
    bar
->len = strlen(bar->name);

    
// mapping bar of C to foo
    clazz = (*env)->GetObjectClass(env, fooObj);
    
if (0 == clazz) {
        printf(
"GetObjectClass returned 0\n");
        
return (-1);
    }
    fid 
= (*env)->GetFieldID(env, clazz, "len""I");
    (
*env)->SetLongField(env, fooObj, fid, bar->len);

    fid 
= (*env)->GetFieldID(env, clazz, "name""Ljava/lang/String;");
    jstring name 
= (*env)->NewStringUTF(env, bar->name);
    (
*env)->SetObjectField(env, fooObj, fid, name);

    free(bar);
    
return 0;
}

瀵瑰簲鐨凧ava璋冪敤
public class Foo {
    
protected int len;
    
protected String name;
}


    
private static native int foo(Foo fooObj);

    
public static void main(String args[]) {
        System.loadLibrary(
"mylib");

        Foo foo 
= new Foo();
        foo(foo);
        System.out.println(foo.name);
        System.out.println(foo.len);

    }

鍙傝冮摼鎺?br />
http://www.steveolyo.com/JNI/JNI.html#CSTRCJ
http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/types.html



]]>
Jetty SslSelectChannelConnector about file downloadinghttp://m.tkk7.com/miaoyachun/archive/2012/07/18/383427.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Wed, 18 Jul 2012 10:22:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/07/18/383427.htmlhttp://m.tkk7.com/miaoyachun/comments/383427.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/07/18/383427.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/383427.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/383427.html 鍙戠幇鐢╟url浠巎etty鏈嶅姟鍣ㄤ笂download鏂囦歡鐨勯熷害姣旇緝鎱㈠ぇ姒傚彧鏈?M/s, 寮濮嬩互涓篶url鏈夐粯璁ょ殑limit-rate錛岃緗負1G浠ュ悗鍙戠幇榪樻槸鎱€?br />鐒跺悗寮濮嬫鐤戞槸jetty server鐨勯棶棰樸傜湅SslSelectChannelConnector鐨剅esponseBufferSize姣旇緝鍍忥紝鍙嶅瀹為獙鍙戠幇鍘熸潵鏄敱浜巋eaderBufferSize澶皬銆?br /> 鏀逛負32K浠ュ悗錛?br />
        SslSelectChannelConnector connector = new SslSelectChannelConnector();
        
        connector.setRequestBufferSize(
32768);

鏁堟灉錛?br />
curl -k https://USER:PASSWD@HOST:PORT/api/internal/file?filename=/path/to/file > /dest/to/file
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload     Upload   Total   Spent     Left   Speed
100  723M  100  723M    0     0   29.3M      0       0:00:24  0:00:24 --:--:-- 29.4M

ref: http://wiki.eclipse.org/Jetty/Howto/Configure_Connectors

]]>
maven project to eclipse java projecthttp://m.tkk7.com/miaoyachun/archive/2012/06/27/381618.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Wed, 27 Jun 2012 07:56:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/06/27/381618.htmlhttp://m.tkk7.com/miaoyachun/comments/381618.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/06/27/381618.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/381618.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/381618.htmlsteps:
1. download maven project src code
2. cd project root dir & run "mvn eclipse:eclipse"
3. import it as eclipse java prject    

step2 will generate .classpath & .project file

]]>
欏圭洰渚濊禆鍒嗘瀽宸ュ叿http://m.tkk7.com/miaoyachun/archive/2012/06/13/380695.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Wed, 13 Jun 2012 08:13:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/06/13/380695.htmlhttp://m.tkk7.com/miaoyachun/comments/380695.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/06/13/380695.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/380695.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/380695.html
zane鏄ㄥぉ鎺ㄨ崘涓」鐩緷璧栧垎鏋愮殑宸ュ叿: http://www.jboss.org/tattletale

JBoss Tattletale is a tool that can help you get an overview of the project you are working on
or a product that you depend on.

The tool will provide you with reports that can help you

* Identify dependencies between JAR files
* Find missing classes from the classpath
* Spot if a class/package is located in multiple JAR files
* Spot if the same JAR file is located in multiple locations
* With a list of what each JAR file requires and provides
* Verify the SerialVersionUID of a class
* Find similar JAR files that have different version numbers
* Find JAR files without a version number
* Find unused JAR files
* Identify sealed / signed JAR archives
* Locate a class in a JAR file
* Get the OSGi status of your project

浣跨敤鏂規硶
java -Xmx512m -jar tattletale.jar [-exclude=<excludes>] <scan-directory> [output-directory]

娉ㄦ剰浜嬮」
tattletale鍙垎鏋恓ar鍖呬箣闂寸殑渚濊禆錛岄渶瑕佽嚜宸辨妸鎵鏈夌殑class鏂囦歡鎵撳寘鏀懼叆scan-directory錛岀劧鍚庢妸渚濊禆鐨刲ib涔熸斁鍏ュ悓涓洰褰?/span>


]]>
Java榪涚▼memory leak鍒嗘瀽http://m.tkk7.com/miaoyachun/archive/2012/03/16/372005.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Fri, 16 Mar 2012 01:45:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/03/16/372005.htmlhttp://m.tkk7.com/miaoyachun/comments/372005.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/03/16/372005.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/372005.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/372005.htmljmap & jhat
閫氳繃鍒嗘瀽heap涓璞$殑鏁伴噺榪樻湁澶у皬鍙互瀹氫綅鍝釜綾誨嚭浜嗛棶棰樸?img src ="http://m.tkk7.com/miaoyachun/aggbug/372005.html" width = "1" height = "1" />

]]>
Program exception handlinghttp://m.tkk7.com/miaoyachun/archive/2012/03/12/371745.htmlMilo鐨勬搗鍩?/dc:creator>Milo鐨勬搗鍩?/author>Mon, 12 Mar 2012 08:35:00 GMThttp://m.tkk7.com/miaoyachun/archive/2012/03/12/371745.htmlhttp://m.tkk7.com/miaoyachun/comments/371745.htmlhttp://m.tkk7.com/miaoyachun/archive/2012/03/12/371745.html#Feedback0http://m.tkk7.com/miaoyachun/comments/commentRss/371745.htmlhttp://m.tkk7.com/miaoyachun/services/trackbacks/371745.html    寮傚父鏄湁浠d環鐨勶紝姣斿灝介噺閬垮厤浣跨敤寮傚父鏉ュ疄鐜版祦紼嬫帶鍒?br />2. 灝介噺澶勭悊寮傚父
    鏈夎兘鍔涘鐞嗗紓甯稿垯澶勭悊鎺夛紝涓嶇劧澶栧眰鍑芥暟浼氱瘡縐お澶氱殑寮傚父
3. 澶勭悊涓嶄簡鍒欐姏鍑哄紓甯?br />    鑷繁闂嚜宸憋紝榪欎釜寮傚父鑳藉澶勭悊涔堬紝涓嶈鐨勮瘽鐩存帴鎶涘嚭錛屽彲浠ュ弬鑰冨師鍒?
4. Throw early and catch late
    涓鑸簳灞傚嚱鏁頒笉浼氬鐞嗗紓甯革紝澶栧眰鍑芥暟浼氭牴鎹笂涓嬫枃鎹曡幏寮傚父榪涜澶勭悊鎴栬呰漿鎹?br />5. 涓嶈瑕嗙洊寮傚父
6. try鍧椾笉搴旇澶ぇ錛堜唬鐮佽鑼冿級
7. 鍑芥暟鎶涘嚭鐨勫紓甯鎬笉搴旇澶錛堜唬鐮佽鑼冿級

鍙傝?br />


]]> 主站蜘蛛池模板: 成人特黄a级毛片免费视频| 亚洲色大成网站www| 成人久久免费网站| 亚洲熟妇无码八AV在线播放| 污视频网站免费观看| 免费A级毛片在线播放不收费| 在线观看免费亚洲| 免费a级毛片18以上观看精品| 边摸边脱吃奶边高潮视频免费| 国产色爽女小说免费看| 亚洲av无码专区在线观看下载 | 亚洲毛片网址在线观看中文字幕| 自拍偷自拍亚洲精品偷一| 亚洲精品国产综合久久一线| 久久久久久国产a免费观看不卡 | 国产成人A在线观看视频免费 | 最近中文字幕mv免费高清电影| 亚洲人成www在线播放| 国产片免费福利片永久| 精品久久久久久国产免费了| 亚洲AV永久纯肉无码精品动漫| 99re这里有免费视频精品| 亚洲av无码专区在线| 日本牲交大片免费观看| a高清免费毛片久久| 亚洲精品免费观看| 女人被男人桶得好爽免费视频| 曰批免费视频播放在线看片二| 好看的电影网站亚洲一区| av无码久久久久不卡免费网站 | 亚洲精品无码高潮喷水A片软| 亚洲第一视频在线观看免费| 久久免费动漫品精老司机| 亚洲资源最新版在线观看| 亚洲精品乱码久久久久久不卡| 日韩av无码久久精品免费| 久久久久久亚洲av无码蜜芽| 亚洲成av人在线视| 永久在线毛片免费观看| 毛片免费在线观看| 国产天堂亚洲精品|