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-如何在自定义taglib的<head>标记内添加&lt;script&gt;?

grails - 如何使用grails-datastore-gorm在 Spring 启动中获取所有域类?

grails - 保存域实例时是否可以使用映射GORM 6 “defaultValue”

hibernate - Grails not-null属性在验证期间引用了null或 transient 值

grails - SHA1编码数据并在grails View 中访问哈希结果

java - 如何管理跨多个项目的共享引导数据

hibernate - 在Grails 4.0.1中刷新 session

grails - Grails批量插入

grails - 在gsp页面中使运行时计算失败

string - 如何在Config.Groovy中使用设置的变量并将其连接