码迷,mamicode.com
首页 > 编程语言 > 详细

提高java编程质量 - (一)易变业务使用脚本语言编写

时间:2017-02-08 14:56:34      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:处理   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解释脚本语言,可直接通过该工具运行脚本;

提高java编程质量 - (一)易变业务使用脚本语言编写

标签:处理   auth   nbsp   style   ace   return   get   作用   mod   

原文地址:http://www.cnblogs.com/JsonShare/p/6377879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!