Я изучал методы динамического запуска groovy-скриптов в java-приложении.
Я прошел через такие методы, как: 1. Groovy Shell
binding.setVariable("x", 5);
String script = "y = x * x"
GroovyShell gs = new GroovyShell();
Script script = gs.parse(script);
script.run();
Использование GroovyClassLoader.
У меня есть два java-приложения.Одним из них является серверная часть для графического интерфейса, который хранит данные во время их выполнения.Там нет общего кеша между ними.Чтобы избежать накладных расходов на компиляцию каждый раз, я собираюсь сначала скомпилировать приложение в приложении B, а затем кэшировать его (чтобы избежать утечки памяти).Кроме того, я попытался сохранить файлы классов, сгенерированные путем первоначальной компиляции сценария, а затем сохранить его в базе данных в виде байтов, но до сих пор не добился успеха.
Однако я не уверен, чтоэто было бы оптимизацией или если Groovy Shell / Groovy Class Loader уже кэширует сгенерированные файлы классов.Каким должен быть лучший способ для этого?
Кроме того, сценарии не должны быть простыми, поэтому какой механизм будет лучше, Groovy Shell или Groovy Class Loader?(Также изучает GrooyScriptEngine, но, похоже, он не понадобится для простых скриптов).