gpt4 book ai didi

grails - grails 3-在插件 “doWithApplicationContext”期间更新grails配置

转载 作者:行者123 更新时间:2023-12-02 14:39:44 26 4
gpt4 key购买 nike

我有一个插件,该插件在启动期间会从应用程序的Config文件读取一些属性,创建一些域对象,然后需要使用一些其他信息来更新配置。但是,似乎在doWithApplicationContext期间可用的配置对象不是实际的grailsApplication.config对象。

例如,尝试在MyPluginGrailsPlugin.groovy文件中做一些简单的事情:

void doWithApplicationContext() {
grailsApplication.config.put('test', 'testValue')
}

不更新配置。

如果此插件包含在应用程序中,则在启动后的任何时候, grailsApplication.config.getProperty('test')将返回null。

如何在插件启动期间更新配置映射?

注意:在grails 2中,这曾经起作用。

最佳答案

在MyPluginGrailsPlugin.groovy的doWithApplicationContext中使用此代码段,将新属性成功添加到了应用程序的config对象中。

 ConfigObject myConfigObject = new ConfigSlurper().parse(props)
PropertySource propertySource = new MapPropertySource('grails.plugins.myPlugin', [:] << myConfigObject)
def propertySources = grailsApplication.mainContext.environment.propertySources
propertySources.addFirst propertySource

另外需要注意的是:在插件的doWithApplicationContext中,像这样更改config对象在Grails 2中有效,而在Grails 3中不再有效。
grailsApplication.config.merge(myConfigObject)
grailsApplication.configChanged()

关于grails - grails 3-在插件 “doWithApplicationContext”期间更新grails配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45063824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com