gpt4 book ai didi

grails - 在共享同一个插件的两个grails应用之间共享配置

转载 作者:行者123 更新时间:2023-12-02 14:58:30 25 4
gpt4 key购买 nike

我们将有两个应用程序都需要使用相同的服务/实用程序/代码/配置。

我们正在使用grailsApplication.config。*来配置诸如指向外部服务的URL之类的东西。根据应用程序是否在dev / test / qa / staging / prod中运行而有所不同,因此我们使用了Config.groovy中的环境部分。我们需要为两个应用程序配置相同的URL /环境。

为了避免重复,我们正在尝试构建一个插件来容纳所有共享的东西。这适用于服务等,但是Grails插件不包含Config.groovy,resources.groovy,因此无法将所有URL配置等放置在插件的Config.groovy中。

有没有一种很好的方法可以将该配置放在一个地方并使两个应用程序都可以使用?

也许我们可以将其放在插件中的某个位置,然后将其“导入”到两个应用程序的Config.groovy中?

最佳答案

外部配置文件的grails.config.locations定义可以包括用于从预编译的Groovy脚本加载配置的java.lang.Class对象,以及用于在运行时解析Groovy或file:文件的classpath:.properties URL。因此,您应该能够在src/groovy下的插件中创建配置文件

{plugin} /src/groovy/com/example/CommonConfiguration.groovy

package com.example

environments {
production {
...
}
development {
...
}
}

然后在应用程序的 Config.groovy文件中将此类包含在 grails.config.locations
grails.config.locations = [com.example.CommonConfiguration]

但这确实意味着当插件的 CommonConfiguration和主机应用程序的 Config.groovy都为同一属性指定值时,插件将获胜。要解决此问题,您需要在 grails.config.locations(可以是另一个 Class或URL)中放置第二个外部对象
grails.config.locations = [com.example.CommonConfiguration,
"file:app-config.groovy"]

并在其中放置应用程序配置(因为以后的外部配置会覆盖以前的外部配置)。

关于grails - 在共享同一个插件的两个grails应用之间共享配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342598/

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