0

我有一个自定义 Java 库,它实现了在 Groovy 中实现并通过配置文件提供的业务规则。我使用 GroovyClassLoader 编译业务规则并返回所需的类,如下所示:

public class GroovyScriptClassLoader {
    private GroovyClassLoader classLoader = null;

    public GroovyScriptClassLoader() {
        this.classLoader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
    }

    public Rule getRule(final String ruleName, final String ruleSource) {
        Class<?> ruleClazz = parseScript(ruleName, ruleSource);
    }

    private Class<?> parseScript(final String ruleName, final String ruleSource) {
        GroovyCodeSource codeSource = new GroovyCodeSource(ruleSource, ruleName, GroovyShell.DEFAULT_CODE_BASE);
        codeSource.setCachable(true);
        return classLoader.parseClass(codeSource);
    }
}

我的配置文件中嵌入的业务规则在类级别使用@CompileStatic 注释进行了注释。

如何让我的 GroovyClassLoader 配置为进行静态编译?

我猜它涉及使用 CompilerConfiguration 创建 GroovyClassLoader(即 GroovyClassLoader(ClassLoader loader, CompilerConfiguration config),但我很难找到配置 CompilerConfiguration 来完成此操作的特定信息。

谁能提供一个关于如何配置 GroovyClassLoader 进行静态编译的示例?

谢谢!

4

0 回答 0