solon-faas-luffy
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-faas-luffy</artifactId>
</dependency>
1、描述
函数计算扩展插件。一个文件,即为一个函数。它是 Solon 与函数计算引擎 Luffy 的结合(做低代码,它是良配)。目前,可选的执行器有:
执行器 | 函数后缀名 | 描述 | 备注 |
---|---|---|---|
luffy.executor.s.javascript | .js | javascript 代码执行器(支持 jdk8, jdk11) | 默认集成 |
luffy.executor.s.graaljs | .js | javascript 代码执行器 | |
luffy.executor.s.nashorn | .js | javascript 代码执行器(支持 jdk17, jdk21) | |
luffy.executor.s.python | .py | python 代码执行器 | |
luffy.executor.s.ruby | .rb | ruby 代码执行器 | |
luffy.executor.s.groovy | .groovy | groovy 代码执行器 | |
luffy.executor.s.lua | .lua | lua 代码执行器 | |
luffy.executor.m.freemarker | .ftl | freemarker 模板执行器 | |
luffy.executor.m.velocity | .vm | velocity 模板执行器 | |
luffy.executor.m.thymeleaf | .thy | thymeleaf 模板执行器 | |
luffy.executor.m.beetl | .btl | beetl 模板执行器 | |
luffy.executor.m.enjoy | .enj | enjoy 模板执行器 |
插件会通过后缀名,自动匹配不同的执行器。(使用其它 js 执行器时,需要排除掉默认的)
2、应用示例
- 添加启动类
@SolonMain
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app->{
//让 Luffy 的处理,接管所有 http 请求
app.all("**", new LuffyHandler());
//添加外部文件夹资源加载器(可以自己定义,比如实现数据库里的文件加载器)
app.context().wrapAndPut(JtFunctionLoader.class, new JtFunctionLoaderFile("./luffy/"));
});
}
}
- 添加资源文件 /luffy/hello.js (你好,世界!)
let name = ctx.param("name");
if(!name){
name = "world";
}
return `Hello ${name}!`;
资源文件是默认支持的。也可以把文件放在外部目录 "./luffy"(即 jar 边上的目录),随时更新,随时生效(一般,生产会放这里。或者定制数据库的加载器)。