既然是动态脚本,需要的就是动态执行,因此暂时不考虑groovy编译为字节码的情况,而直接使用java进行解析,并且运行。
考虑到程序的简单性,建立一个普通的java程序就好,导入以下两个jar包:
- commons-io-2.2.jar 用于快速读取文本文件内容
- groovy-all-2.3.10.jar
文件:HelloWord.groovy
package com.amarsoft.rax.rulengine
import java.text.SimpleDateFormat
import java.text.ParseException
class RuntimeContext {
//以下是英文部分变量,一般通过程序自动装载得到,用于从数据库或其他持久层加载业务数据
def collegeName = "EMBA业余大学"
def tuitionFee = 80000
def startDate = '2016/02/01', finishDate = '2016/09/01'
def today = "2017/01/21"
def student = ['id' : 'E9527',
'name' : '于小小',
'gender' : 'F',
'kind' : 'EMBA',
'className' : '重庆理工大学MBA三年级四班',
'grade' : 4,
'birth' : '1989/03/02',
'address' : '重庆市巴南区红光大道',
'salary' : 50000,
'createTime' : '2016/01/21 11:31:00',
'courses' : [
['id': 'GJC', name: '公共基础', 'classHour': 32],
['id': 'ZXW', name: '组织行为学', 'classHour': 40],
['id': 'TJX', name: '统计学', 'classHour': 20],