首页 文章

使用GroovyClassLoader与GroovyShell有什么优缺点

提问于
浏览
1

我需要从我的Java应用程序运行一些外部代码,这些代码将经常更新并与应用程序的其余部分正交 . 由于我不为每次代码更改重新部署整个应用程序(以及其他原因),我们选择使用groovy作为此代码,并将其存储在文件系统或数据库中 .

From the documentation我明白我有两种方法来运行代码 - 使用GroovyShellGroovyClassLoader(eval不适合这里)

每种方法的优缺点是什么?

2 回答

  • 2

    GroovyShell在下面使用GroovyClassLoader . 除非您需要仅由GroovyClassLoader提供的功能,否则请使用GroovyShell .

  • 3

    GroovyShell使用默认的类加载器,直到您在自定义类路径的脚本中加载某些东西,然后它切换到自定义GroovyClassLoader,这可能导致加载一些jdbc驱动程序或jndi项等问题......所以,如果您的默认类加载器已经有它需要的类路径,如果你可以避免在Java代码中实例化一个新的GroovyClassLoader对象,那么用一个简单的GroovyShell加载一个shell脚本将使用默认的类加载器,你会更好 .

    希望我理解你的问题 .

相关问题