回答
您可以存儲任何你想要的數據庫,並使用域類讀出來。如果您希望能夠在無需重新部署新代碼的情況下對事物進行更改,這一點尤其有用。但要意識到,每次訪問該屬性時都會觸發數據庫。
您可以設置一個ConfigurationService:
ConfigurationService {
static def configurationValues
def getConfigurationValues() {
if(configurationValues == null) {
refreshConfigurationValues()
}
configurationValues
}
def refreshConfigurationValues() {
configurationValues = //go get the values out of the database
}
}
然後你就可以添加一個控制器/採取強制刷新必要時
ConfigurationController {
def configurationService
def refreshConfiguration = {
configurationService.refreshConfigurationValues()
render "Ahhh... That's refreshing :)"
}
}
現在,您可以通過調用刷新您的配置值: 「http:// yoururl/appName/configuration/refreshConfiguration」
這可以用BootStrap.groovy完成。因此,按照Jarred的回答,創建一個您想要存儲的配置數據的域類,然後在BootStrap.groovy文件中,輸入這些值。這樣做是如果配置值不存在,它會創建它,如果它存在將不會做任何事情。
然後,您可以使用域類訪問您的配置值。我假設你想這樣做,因爲grailsApplication.config ...有時會變得不守規矩。
域級MyConfig.groovy:
class MyConfig {
String type
String name
String value
}
BootStrap.groovy中:
def myConfig = MyConfig.findByName("path") ?: new MyConfig(
type: "Path"
name: "path"
value: "/var/tmp"
).save(failOnError: true)
我同意這個初始化可以在BootStrap.groovy中完成。但是,在那裏創建配置選項並不能解決問題,因爲您必須部署新代碼才能更改任何值。這與使用Config.groovy的陷阱是一樣的。另外,你必須確定你所在的環境(這並不難),但基本上與Config.groovy提供的相同。 – 2012-01-11 14:05:33
- 1. 非數據庫應用程序的GAE數據存儲設置
- 2. 在應用程序中存儲iPhone應用程序設置
- 3. 在數據庫中存儲應用程序設置
- 4. 如何在應用程序庫中緩存/存儲應用程序設置
- 5. 在Web應用程序的數據庫上存儲設置?
- 6. 存儲配置桌面應用程序
- 7. 存儲配置設置應用程式
- 8. 如何爲php庫存應用程序設置數據庫表
- 9. .NET - 存儲應用程序設置
- 10. 應用程序設置存儲
- 11. Web應用程序設置存儲
- 12. 如何存儲應用程序設置?
- 13. Grails應用程序的Log4j socketappender配置?
- 14. 在Sharepoint中存儲應用程序特定的配置數據?
- 15. 用於存儲應用程序配置數據的LDAP vs數據庫
- 16. 如何存儲Web應用程序的配置設置?
- 17. Grails,存儲應用程序自己的設置(單身域類?)
- 18. 爲Elixir程序包設置默認的應用程序配置
- 19. Django應用程序中斷使用Heroku的數據庫設置
- 20. 在設置應用程序中創建應用程序設置
- 21. 爲應用程序設置
- 22. 在Java應用程序中保存和更新配置設置
- 23. Linux配置數據:存儲應用程序設置的標準方式?
- 24. 如何最好地爲Android應用程序設置存儲庫?
- 25. 在MVVM應用程序中存儲應用程序設置/狀態的地方
- 26. .net跨應用程序配置設置
- 27. 配置ADP應用程序以使用不同的數據庫...?
- 28. 的Node.js:使用process.env存儲整個應用程序的配置
- 29. 如何設置Resque使用的應用程序數據庫?
- 30. 數據庫連接在應用程序配置中的作用
在我的情況下,有一個一堆的配置設置,我寧願在數據庫內。例如用於發送電子郵件的用戶名/密碼組合,用於加密哈希的祕密密碼等。我知道我可以緩存特定的域類,但是當您聲明我希望重新初始化緩存時,只要我進行更改配置並儘可能跳過數據庫命中。 – Marco 2012-01-10 17:40:13
但這就是Jarreds提案所做的。 – david 2012-01-10 21:09:26
@david我添加了代碼來爲Marco的評論提供一個示例。 – 2012-01-11 14:01:18