从字符串加载和缓存Groovy脚本和类

从字符串加载和缓存Groovy脚本和类,groovy,Groovy,我正在Java项目中集成Groovy,以允许它在运行时加载Groovy代码。其思想是将一些业务规则保留在数据库或内存缓存中,并在运行时重新加载它们 但是,我找不到一个从字符串或InputStream读取并同时支持脚本和类的方法 显示了3种在运行时加载脚本和类的方法,但没有一种方法允许从字符串输入加载脚本和类: GroovyShell支持缓存,但有线程安全限制,只运行脚本 GroovyClassLoader加载字符串并运行类,但只缓存文件输入 GroovyScriptEngine运行类和脚本,支

我正在Java项目中集成Groovy,以允许它在运行时加载Groovy代码。其思想是将一些业务规则保留在数据库或内存缓存中,并在运行时重新加载它们

但是,我找不到一个从字符串或InputStream读取并同时支持脚本和类的方法

显示了3种在运行时加载脚本和类的方法,但没有一种方法允许从字符串输入加载脚本和类:

  • GroovyShell支持缓存,但有线程安全限制,只运行脚本
  • GroovyClassLoader加载字符串并运行类,但只缓存文件输入
  • GroovyScriptEngine运行类和脚本,支持缓存和重新加载,但只读取文件

当您谈论
运行类时
-是关于使用
静态void main
方法的类吗?你能展示一个你想要运行的代码的例子吗?这个想法是读取一堆在别处定义的规则(db或文件),将它们包装在类或脚本中并运行它们。这基本上是穷人的DSL。使用groovyshell。它也可以运行类。线程限制-仅当您使用限制实现它时。