2013-04-11 70 views
2

我想要將屬性存儲在數據庫表中,併爲在Config.groovy中設置的屬性設置默認值。例如,我想提出一個默認的電子郵件地址的Config.groovy:數據庫中的屬性

app.send.report.to = '[email protected]' 

,然後可以在數據庫表(keyvalue列...)來覆蓋它。

是否有插件(或Grails中的功能)來做到這一點?

回答

4

Dynamic Config Plugin

它存儲的配置屬性在ConfigProperty域和利用Config.groovy和數據庫合併屬性:

grailsApplication.config.merge(configObject)

你可能想看看插件的源碼。如果插件不適合你,你可以實現類似的東西。

當您有用於編輯配置屬性的UI時,此方法非常有用。

1

Grails沒有我知道的覆蓋數據庫配置值的功能,但它不應該那麼難。在您的Config.groovy中,您可以放置​​默認值,然後作爲引導過程的一部分,您可以生成一個臨時配置文件,該文件包含來自數據庫的值(可以使用簡單的查詢和對結果的迭代來生成臨時文件) 。將該臨時文件包含爲您的某個grails配置位置,並且它將覆蓋Config.groovy中的任何值

如果您的目標是擁有多個grails應用程序使用的共享配置文件,那麼您也可以查看使用像Zookeeper這樣的東西來管理共享配置,但這對於單個配置文件可能有點矯枉過正。

0

不是你所要求的,但取決於你想達到什麼樣的外部配置重新加載插件可能是有用的。它可以幫助您覆蓋默認屬性(運行時),但不能使用數據庫。