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

原文 标签 grails

我最近学习了如何使用 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/

相关文章:

grails - 在 Grails 中 ServletContext 之后的这个运算符是什么?

grails - Grails应用程序在域类构建时抛出ConversionNotSupportedException

sql - 我如何获取同名员工的所有ID

grails - Grails单元测试:为什么此语句失败?

unit-testing - Grails的正确Spock语法是什么?

html - 基于数据集的动态 HTML 网格

spring - 使用 JMS 调用远程服务

hibernate - 使用Intellij IDEA在Grails应用程序中使用Hibernate控制台

image - Grails应用程序镜像路径?

grails - Grails GORM问题:对象引用了未保存的 transient 实例