GroovyResourceLoader是否在主类加载器之外调用过?

GroovyResourceLoader是否在主类加载器之外调用过?,groovy,Groovy,我安装了GroovyResourceLoader,它似乎会根据需要获取groovy脚本的请求。我只是想知道,除了类加载之外,它还专门用于其他地方吗?与使用GRL相比,简单地包装一个类加载器并在那里加载*.groovy文件有什么好处吗?它们只是以不同的方式达到同一目的吗?GroovyResourceLoader GRL由GroovyClassLoader GCL使用,至少从Groovy 1.8开始,它是通过GroovyScript引擎GSE间接使用的。但GSE也通过GCL加载它 但是GRL所做的是

我安装了GroovyResourceLoader,它似乎会根据需要获取groovy脚本的请求。我只是想知道,除了类加载之外,它还专门用于其他地方吗?与使用GRL相比,简单地包装一个类加载器并在那里加载*.groovy文件有什么好处吗?它们只是以不同的方式达到同一目的吗?

GroovyResourceLoader GRL由GroovyClassLoader GCL使用,至少从Groovy 1.8开始,它是通过GroovyScript引擎GSE间接使用的。但GSE也通过GCL加载它

但是GRL所做的是定位脚本并将URL返回到该位置。GCL所做的是使用GRL返回的URL获取源代码并编译它来创建类,然后可以加载该类

GRL是GCL的后端。因此,它们并非以不同的方式达到相同的目的。诚然,您仍然需要做更多的事情来实际执行脚本代码,除非它是预编译的,但是获取脚本源代码,编译它,用它生成一个类,最后执行它是您一直必须做的步骤。在我们的GRL/GCL讨论中,GRL是第一步的一部分,GCL本身是第三步。第2步由GCL内部的CompliationUnit完成,最后一步由您完成。当然,还有其他方法可以完成这些步骤,但这超出了本文讨论的范围