我想将属性存储在数据库表中,并且具有Config.groovy
中设置的属性的默认值。例如,我想将默认电子邮件地址放入Config.groovy:
app.send.report.to = 'me@example.com'
然后能够在数据库表(key
,value
列...)中覆盖它。
是否有插件(或grails内部的功能)来执行此操作?
答案 0 :(得分:4)
它在ConfigProperty域中存储config属性,并使用以下方法合并Config.groovy
和数据库中的属性:
grailsApplication.config.merge(configObject)
您可能需要查看插件源代码。如果插件不适合你,你可以实现类似的东西。
当您拥有用于编辑配置属性的UI时,此方法很有用。
答案 1 :(得分:1)
Grails没有我知道的覆盖数据库配置值的功能,但它不应该那么难。在您的Config.groovy
中,您可以设置默认值,然后作为引导过程的一部分,您可以生成具有数据库值的临时配置文件(可以使用简单查询和结果迭代生成那个临时文件)。将临时文件包含为您的grails配置位置之一,它将覆盖Config.groovy
如果您的目标是拥有多个grails应用程序使用的共享配置文件,您可能还会考虑使用Zookeeper之类的东西来管理共享配置,但这对于单个配置文件来说可能有点过分。< / p>
答案 2 :(得分:0)
不完全是您所要求的,但根据您想要实现的目标,可能会使用外部配置重新加载插件。它可以帮助您覆盖默认属性(在运行时),但不能使用数据库。