Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Каковы плюсы и минусы использования GroovyClassLoader и GroovyShell

Автор вопроса: David RabinowitzОтветов: 2

Мне нужно запустить некоторый внешний код из моего Java-приложения, который будет часто обновляться и ортогонально по отношению к остальной части приложения. Поскольку я не хочу повторно развертывать все приложение при каждом изменении кода (а также по другим причинам), мы решили использовать groovy для этого кода и сохраните его либо в файловой системе, либо в базе данных.

Из документации я понимаю, что у меня есть два способа запуска кода: использование GroovyShell или GroovyClassLoader (eval здесь не подходит)

Каковы плюсы и минусы каждого метода?

javagroovygroovyshellgroovyclassloader

Ответы

Ответ 1 · рейтинг 3 · Peter Niederwieser

GroovyShell использует GroovyClassLoader внизу. Используйте GroovyShell, если вам не нужна функция, предоставляемая только GroovyClassLoader.

Ответ 2 · рейтинг 2 · djangofan

GroovyShell использует загрузчик классов по умолчанию до тех пор, пока вы не загрузите что-то в сценарии, который настраивает путь к классам, затем он переключается на пользовательский GroovyClassLoader, что может вызвать проблемы с загрузкой некоторых драйверов jdbc или элементов jndi и т. д. Итак, если ваш загрузчик классов по умолчанию уже имеет classpath, который ему нужен, и , и если вы можете избежать создания экземпляра нового объекта GroovyClassLoader в своем коде Java, то загрузка сценария оболочки с помощью простого GroovyShell будет использовать загрузчик классов по умолчанию, и вам будет лучше для него.

Надеюсь, я понял ваш вопрос.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы