我正在设计一个系统并考虑使用某种脚本语言,以便让第三方开发人员扩展系统的功能。
只是为了让您了解我的目标...当触发事件时,脚本语言将需要调用 VM 空间上的一些对象来提供常见功能(例如,在 BD 上存储对象、发送电子邮件) .
几年前,在类似的情况下,我使用了 BeanShell效果很好。检查网站,该项目似乎有点过时了。
最佳答案
Groovy 在语法上与 C/Java 语言家族相似,在语义上基于 Ruby/Python/Smalltalk。它应该有一个平滑的学习曲线,应该不难上手并立即发挥作用(如果这对您的客户来说是一个问题)。
它具有 GroovyShell
和 Eval
,用于轻松评估存储在数据库中的某些脚本,例如:
result = Eval.me """
a = 1 + 2
b = 3 + 4
a + b
"""
assert result == 10
请注意,这太原始了,您可能需要某种沙箱,否则您的客户端可能会做一些令人讨厌的事情,例如 System.exit
。对于这些场景,有compiler customizers和 groovy-sandbox 。另外,您可以add type checking through compiler customization .
关于java - 使用哪种 JVM 脚本语言来定制 Java Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39271853/