我需要从我的Java应用程序运行一些外部代码,这些代码将经常更新并与应用程序的其余部分正交。由于我不为每次代码更改重新部署整个应用程序(以及其他原因),我们选择对此代码使用groovy,并将其存储在文件系统或数据库中。 / p>
From the documentation我知道我有两种方法来运行代码 - 使用GroovyShell或GroovyClassLoader(eval不适合此处)
每种方法的优缺点是什么?
答案 0 :(得分:3)
GroovyShell在下面使用GroovyClassLoader。除非您需要一个仅由GroovyClassLoader提供的功能,否则请使用GroovyShell。
答案 1 :(得分:2)
GroovyShell使用默认的类加载器,直到您在自定义类路径的脚本中加载某些内容,然后切换到自定义GroovyClassLoader,这可能会导致加载某些jdbc驱动程序或jndi项等问题......所以,如果您的默认类加载器已经有它需要的类路径,并且如果你可以避免在Java代码中实例化一个新的GroovyClassLoader对象,那么使用一个简单的GroovyShell加载一个shell脚本将使用默认的类加载器,你会更好。
希望我理解你的问题。