我知道可以从grails-app/conf/Config.groovy
读取值,但我想知道是否也可以写入值?
这个简单的东西似乎并没有真正改变Config中的值。
def oldValue = grailsApplication.config.my.value
assert oldValue == "oldValue"
def newValue = "newValue"
grailsApplication.config.my.value = newValue
assert newValue == grailsApplication.config.my.value
我想将此作为一种方法在数据库之外存储一些值,而不必加载另一个属性文件。
答案 0 :(得分:2)
如果我理解正确的话,这可能不会很实际。您真的在运行时处理已编译的Config.class。你真的想从你的VCS中查看Config.groovy,修改它,重新编译它,重新编译它,然后搞乱Classloader来重新加载它吗?我发现这样做的唯一方法是将其属性外部化为数据库或文件,并在运行时管理状态以处理更新。
答案 1 :(得分:0)
我同意proflux的评论。 Config.groovy不是保留您的应用程序生成的任何数据的正确位置,并且您尝试的内容不起作用是好事:)
我很好奇为什么你不想将这些值保存在常规数据库中(无论何种类型)。当然,总是可以选择将其存储在某个文件中,您可以在Config.groovy中配置该路径。但即使对我来说,这似乎也只是有点帮助。
为什么不按照以下方式添加域类:
class Setting{
String key
String value
static constraints = {
key(unique: true)
}
}
从我在这里可以看出,这可能是实现您所寻找目标的最简单方法。但同样,你应该详细说明你需要坚持的数据类型......