以编程方式从应用程序上下文中删除grails工件

时间:2015-07-07 13:35:14

标签: grails

我最近学会了如何使用grailsApplication.addArtefact(java.lang.String artefactType,GrailsClass artefactGrailsClass)注册自定义grails工件(我的应用程序中的动态控制器),它工作正常,但现在我意识到我也是希望能够取消注册它们。

不幸的是,GrailsApplication接口没有提供明确的方法,似乎只能通过重新启动整个应用程序来取消注册不需要的动态注册的grails工件。

也许我错过了某些东西,可以从应用程序中删除工件而无需重新启动应用程序?

谢谢

1 个答案:

答案 0 :(得分:0)

您始终可以rebuild GrailsApplication。抛弃所有的文物并加载默认文物。这显然意味着你必须addArtefact你想要再次保留的文物。

其他选项是访问loadedClasses集(受保护)并手动进行更改,然后调用populateAllClasses使其可用(此方法也受到保护)。