一个轻量级的脚本规则引擎工具 Aviator Script

告别if else!试试这款轻量级流程引擎吧,跟SpringBoot绝配! (qq.com)

 

println("Hello Aviator Script!");

a=b+c;
println("a="+a);

执行:

复制代码
package com.yuyi.advanced.pis;

import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit.jupiter.SpringExtension;

import java.io.IOException;
import java.util.HashMap;

@ExtendWith(SpringExtension.class)
class StarterApplicationTests {

    @Test
    void contextLoads() throws IOException {
        // 获取路径
        ClassPathResource classPathResource = new ClassPathResource("/script/hello.av");
        String scriptPath = classPathResource.getPath();
        // 编译
        Expression exp = AviatorEvaluator.getInstance().compileScript(scriptPath);
        // 上下问参数
        HashMap<String, Object> map = new HashMap<>();
        map.put("b",3000);
        map.put("c",3000);
        // 执行
        exp.execute(map);
    }

    @Test
    void compile(){
        // 定义脚本
        String script = "println(\"Hello Aviator Script\")";
        // 编译
        Expression exp = AviatorEvaluator.getInstance().compile(script);
        // 执行
        exp.execute();
    }

}
复制代码

执行结果:

 

posted @   IT知识生产小店铺  阅读(616)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示