現在很多應用的業務邏輯會經常根據不同需求而加以修改,比如在線遊戲需要更新任務和日常活動.
通常的方法就是在設計的時候能把這部分抽離出來,把這部分的邏輯放大腳本模塊處理.
腳本動態更新的靈活性大家都知道的...
在此介紹一個簡單的方式如何把腳本嵌入應用...
熟悉java jdk的朋友應該知道1.6以後
javax.script 對主流腳本語言都給予了支持.
這裏主要用groovy爲例來說明一下,groovy相信大家也應該熟知了,會java寫groovy的很輕鬆,可以直接寫java代碼,在這裏並沒使用JSR 223 Scripting特性.
因爲只用一種腳本的話,就直接上吧哈哈...
其實很簡單,先說明下幾個類的功能吧
ScriptManager//負責腳本的加載和調用管理
IScriptHandler//做爲一個接口來橋接與其它業務的邏輯
加載腳本
GroovyScriptEngine engine = new GroovyScriptEngine(path);
Binding binding=new Binding();
engine.run(script_file, binding);
groovy,運行默認會調用main方法的
在MasterHandler腳本里面把具體的業務腳本注入到腳本容器裏面
ScriptManager.registerHandler(new SayHelloworldHandler());
剩下的就是調用,和重新加載了...
在ScriptServer裏面模擬了業務調用和熱加載,具體應用的時候可以通過其他的方式觸發腳本熱加載...
比較簡單的用例,望多多指教...
樣例代碼在附件裏面!