标签:处理 auth nbsp style ace return get 作用 mod
脚本语言的3大特征:
1、灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型;
2、便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务
3、简单:脚本语言语法比较简单,易学
另外:java6以上默认支持JavaScript
例子:
package com.test; import java.io.FileNotFoundException; import java.io.FileReader; import javax.script.Bindings; import javax.script.Invocable; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * java执行脚本语言 * @author jd * */ public class javascript { public static void main(String[] args){ //获取一个JavaScript执行引擎 ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript"); //声明上下文 变量 Bindings bind = se.createBindings(); bind.put("variable","结果:"); //变量的作用域,当前引擎范围内 se.setBindings(bind,ScriptContext.ENGINE_SCOPE); try { //执行js代码 se.eval(new FileReader("E:/model.js")); //是否可调用方法 if(se instanceof Invocable){ Invocable in = (Invocable) se; //执行js的方法 String result = (String) in.invokeFunction("formula",2,10); System.out.println(result); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (ScriptException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } }
情景1:
function formula(a,b){
return variable+ (a*b);
}
结果:
结果:20
情景2:
function formula(a,b){
return variable+ (a+b);
}
结果:12
情景...
所以在变更业务时,不需要重启 java服务器,就可顺利变更业务,对于变更频繁的业务,这就是很好的解决方案。
PS:Java 6 不仅仅提供代码级的脚本内置,还提供了jrunscript命令工具,它可以在批处理中发挥巨大的效能,而且不需要通过JVM解释脚本语言,可直接通过该工具运行脚本;
标签:处理 auth nbsp style ace return get 作用 mod
原文地址:http://www.cnblogs.com/JsonShare/p/6377879.html