我正在编写一个库,它提供了在JVM上以各种非Java语言执行的宏支持。想想JavaScript,Ruby等。
因此我想使用JSR-223 Scripting API。
此API具有httpd.conf
类的概念,我认为这是在加载时预编译脚本并在执行时重用它们的最佳方法。
检查 <VirtualHost *:80>
ServerName sushant.com
ServerAlias www.sushant.com
ProxyRequests On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:7777/
ProxyPassReverse http://localhost:7777/
</Location>
</VirtualHost>
<VirtualHost *:8081>
ServerName sushant.com
ServerAlias www.sushant.com
ProxyRequests on
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8081/
ProxyPassReverse http://localhost:8081/
</Location>
</VirtualHost>
是CompiledScript
的实例是否是一个好习惯,如果是,请使用ScriptEngine
方法,否则只需在Compilable
本身中评估该函数?
E.g。 (简化的):
CompiledScript
在这种情况下是否有使用ScriptEngine
的好处或是否可以忽略?
我的实际实现有点高级,并且有一个单独的加载和调用模式来重用实际的Invocable invocable;
if (scriptEngine instanceof Compilable) {
// Compile the code.
CompiledScript compiledFunction = ((Compilable) scriptEngine).compile(function);
compiledFunction.eval();
invocable = (Invocable) compiledFunction.getEngine();
} else {
// Run the code to load the function into the script engine.
scriptEngine.eval(function);
invocable = (Invocable) scriptEngine;
}
Object value = invocable.invokeFunction(resolveFunctionName(name), args);
return value != null ? value.toString() : null;
:
CompiledScript