2

我想将属性存储在数据库表中,并在Config.groovy. 例如,我想在 Config.groovy 中放入一个默认的电子邮件地址:

app.send.report.to = 'me@example.com'

然后能够在数据库表(keyvalue列...)中覆盖它。

是否有插件(或 grails 中的功能)来执行此操作?

4

3 回答 3

4

动态配置插件

它将配置属性存储在 ConfigProperty 域中,并使用以下方式合并来自Config.groovy和来自数据库的属性:

grailsApplication.config.merge(configObject)

您可能想查看插件源代码。如果插件不适合你,你可以实现类似的东西。

当您拥有用于编辑配置属性的 UI 时,此方法很有用。

于 2013-04-12T09:36:16.270 回答
1

Grails 没有我所知道的从数据库中覆盖配置值的功能,但它应该不难做到。在您Config.groovy可以输入默认值,然后作为引导过程的一部分,您可以生成一个临时配置文件,其中包含数据库中的值(可以使用对结果的简单查询和迭代来生成该临时文件)。将该临时文件包含为您的 grails 配置位置之一,它将覆盖Config.groovy

如果您的目标是拥有一个供多个 grails 应用程序使用的共享配置文件,您还可以考虑使用 Zookeeper 之类的东西来管理共享配置,但这对于单个配置文件来说可能有点矫枉过正。

于 2013-04-11T12:23:10.550 回答
0

不完全是您所要求的,但取决于您想要实现的外部配置重新加载插件可能有用。它可以帮助您覆盖默认属性(在运行时),但不能通过使用数据库。

于 2013-04-11T19:10:58.353 回答