我最近学习了如何使用 grailsApplication.addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsClass) 注册自定义 grails 工件(我的应用程序中的动态 Controller 需要它),它工作正常,但现在我意识到我也想成为能够注销它们。
不幸的是,接口(interface) GrailsApplication 没有提供明确的方法来执行此操作,并且似乎只能通过重新启动整个应用程序来取消注册不需要的动态注册的 grails 工件。
也许我遗漏了一些东西,并且可以从应用程序中删除工件而无需重新启动应用程序?
谢谢
最佳答案
您可以随时rebuild
GrailsApplication
.这会丢弃所有伪像并加载默认伪像。这显然意味着你必须 addArtefact
您想再次保留的文物。
其他选项是访问 loadedClasses
设置( protected )并手动进行更改,然后调用 populateAllClasses
使其可用(此方法也受到保护)。
关于grails - 以编程方式从应用程序上下文中删除 grails 工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31270088/