Каковы плюсы и минусы использования GroovyClassLoader и GroovyShell - PullRequest
1 голос
/ 02 октября 2009

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

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

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

Ответы [ 2 ]

3 голосов
/ 05 октября 2009

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

2 голосов
/ 08 декабря 2011

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

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

...