数据库中的属性

时间:2013-04-11 10:59:49

标签: grails

我想将属性存储在数据库表中,并且具有Config.groovy中设置的属性的默认值。例如,我想将默认电子邮件地址放入Config.groovy:

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

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

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

3 个答案:

答案 0 :(得分:4)

Dynamic Config Plugin

它在ConfigProperty域中存储config属性,并使用以下方法合并Config.groovy和数据库中的属性:

  

grailsApplication.config.merge(configObject)

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

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

答案 1 :(得分:1)

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

中的任何值

如果您的目标是拥有多个grails应用程序使用的共享配置文件,您可能还会考虑使用Zookeeper之类的东西来管理共享配置,但这对于单个配置文件来说可能有点过分。< / p>

答案 2 :(得分:0)

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