資源描述:
《使用relproxy提高java開發(fā)效率-java開發(fā)java經(jīng)驗技巧》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、使用RclProxy提高Java開發(fā)效率-編程開發(fā)技術(shù)使用RelProxy提高Java開發(fā)效率木文由ImportNew?paddx翻譯自dzoneo歡迎加入翻譯小組。轉(zhuǎn)載請見文末要求。RelProxy旨在通過下列兩種方式提高開發(fā)效率:可以在生產(chǎn)環(huán)境下修改用戶代碼,而不需要重新加載整個應(yīng)用。捉高開發(fā)效率,避免花費(fèi)過多的時間加載應(yīng)用月?對性能不會冇影響。兩個目標(biāo)都要求在你的應(yīng)用中增加一些RelProxy代碼,注冊成一種典型的監(jiān)聽、回調(diào)模式。這是一種“侵入”的方式。如果你是一名Java框架或獨(dú)立Java通用服務(wù)模塊的開發(fā)者,可以將RelProxyJ
2、ava嵌入到你的框架屮,這樣能透明地為框架的終端用戶提供代碼自動加載功能,只需要進(jìn)行一些必要的配置,而無需調(diào)用RelProxyAPI。對使用Java版的RelProxy,有兩種API可供調(diào)用:JProxy及其相關(guān)類:主要是靜態(tài)方法Java腳本API:基于接口第二種方式更適合將RelProxy歐入到你的Java框架中,這種方式是基于接I」的,在你的API屮無需暴露公共RelProxy類,因為在框架屮會執(zhí)行啟動程序。我將使用比較簡單的API:JProxyScriptEngineFactor)^.create()。JProxyScriptEngin
3、e的功能與Jproxy相同,也就是說具有相同的方法。只是這種情況下,只需要使用接口。一個簡單的例子是演示如何嵌入RelProxy的最好方式。這個例子是RelProxy的示例倉庫中包含的Re1ProxyBui11in(re1proxybui11in_ex項目中)。它定義了兩個監(jiān)聽器來實(shí)現(xiàn)注冊用戶端的代碼,一個監(jiān)聽器顯示選項(option),另一個執(zhí)行選擇的行為。這個迷你框架和示例使用NetBeems和Maven開發(fā)完成。有兩個包:com.innowhere.relproxybuiltin_ex:迷你框架。子包c(diǎn)om.innowhere.relp
4、roxy_builtin_ex.impl只包含一個非公共的類。com.innowhere,relproxybuiltin_ex_main:—個簡單-的使用示例。迷你框架(公共類和接口):RelProxyBuiItinRoot,javapackagecom.innowhere.relproxybu訂tin_ex;importcom.innowhere.relproxy_builtin_ex.impl.RelProxyBuiltinTmpl;publicclassRclProxyBu訂tinRoot{privatefinalstaticRelPr
5、oxyBuiltinlmplSINGLETON=newRelProxyBuiltinlmpl();publicstaticRelProxyBuiltinget(){returnSINGLETON;RelProxyBuiltin.javapackagecom.irmowhere.relproxy_builtin_ex;importcom.innowhere.rclproxy.jproxy.JProxyScriptEnginc;importjava.io.InputStream;importjava.io.PrintStream;publicin
6、terfaceRelProxyBuiltin{publicJProxyScriptEngincgetJProxyScriptEnginc();publicvoidaddOutputListener(OutputListenerlistener);publicvoidremoveOutputListener(0utputListenerlistener);publicintgetOutputListenerCount();publicvoidaddCommandListener(CommandListenerlistener);publicvo
7、idrcmovcCommandListoner(CommandListonerlistener);publicintgetCommandListenerCount();publicvoidrunLoop(InputStreamin,Printstreamout);}OutputListcncr.javapackagecom.irmowhere.rclprox5^_builtin_ex;importjava.io.Printstream;publicinterfaceOutputListener{publicvoidwrite(PrintStr
8、eamout);CommandListener.javapackagecom.innowhere.relproxy_builtin_ex;importjava.io