FaaS - 执行器与加载器
v2.6.3 后支持
1、Luffy 的函数执行器
插件会通过后缀名,自动匹配不同的执行器(使用其它 js 执行器时,需要排除掉默认的)。另外,不同的持行器,会有不同的环境要求。这个需要注意:
执行器 | 函数后缀名 | 描述 | 备注 |
---|---|---|---|
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 模板执行器 |
添加执行器依赖,示例:
<dependency>
<groupId>org.noear</groupId>
<artifactId>luffy.executor.m.freemarker</artifactId>
<version>${luffy.version}</version>
</dependency>
添加函数文件(注意,函数后缀名 ):src/main/resources/luffy/hello.ftl
<#assign name=ctx.param('name','world') />
<!doctype html>
<html>
<body>
Hello ${name!}!
</body>
</html>
运行后,浏览器打开:http://localhost:8080/hello.ftl?name=solon
输出:"Hello solon!"
2、Solon Luffy 的函数加载器
函数加载器,是 Solon 适配时定制的接口。
加载器 | 描述 | 备注 |
---|---|---|
JtFunctionLoader | 函数加载器接口 | 用于定制 |
JtFunctionLoaderClasspath | 资源目录的函数加载器 | 默认自带(可以去掉) |
JtFunctionLoaderDebug | 资源目录的函数加载器 - debug 模式 | |
JtFunctionLoaderFile | 外部文件的函数加载器 | |
JtFunctionLoaderManager | 函数加载管理器 |