Java - Когда выполнять языки на основе Java, используя скрипт JSR223 - PullRequest
0 голосов
/ 20 июня 2019

Java как язык сценариев может использовать Beanshell и Groovy для сценариев JSR223 (с небольшими ограничениями / изменениями)

Проекты на основе Java (шаблонизатор) как Скорость с поддержкой JSR223

Velocity может быть интегрирована в Java Scripting Language Framework (как определено API JSR-223).

Freemarker предлагает это на странице участников

  • Поддержка javax.script (JSR-223)

Но когда лучше выполнять код на основе Java с помощью сценариев? когда это лучше, чем выполнять его как обычный код Java?

1 Ответ

0 голосов
/ 26 июня 2019

Я нашел использование безопасности, где вы можете выполнить скрипт с ограниченным доступом / песочницей с помощью ScriptEngineManager (java.lang.ClassLoader)

Q:

Я не хочу, чтобы какой-либо сценарий имел доступ к любому из моих классов.

A:

Существует конструктор для ScriptEngineManager, который принимает загрузчик классов. Загрузчик классов используется для загрузки реализации механизма сценариев. Поскольку классы наследуют свои загрузчики классов, механизм сценариев и любые создаваемые им объекты также должны использовать этот загрузчик классов.

Этот загрузчик классов должен отрицать существование любых классов, не занесенных в белый список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...