在grails 2.0中,我可以在Config.groovy中定义列表,并通过grails.util.Holders.config访问它们。
grails 4.0.1中对应的功能是什么?
答案 0 :(得分:0)
签出配置类:https://docs.grails.org/4.0.1/api/grails/config/Config.html
根据官方文档:https://docs.grails.org/latest/guide/conf.html#environments
Grails支持每个环境配置的概念。的
application.yml
中的application.groovy
和grails-app/conf
文件 目录可以通过YAML或每个环境使用每个环境的配置 ConfigSlurper提供的语法。
答案 1 :(得分:0)
在grails 2.0中,我可以在Config.groovy中定义列表并访问它们 通过grails.util.Holders.config。
最佳答案取决于了解要从何处访问值的一些上下文,但是通常不应使用Holders.config
(在Grails 2、3和4中是正确的)。一种选择是让DI容器为您注入List
值。
查看位于https://github.com/jeffbrown/user3647093configlist的项目。
---
music:
drummers:
- Neil Peart
- Mike Portnoy
- Bill Bruford
- Carl Palmer
package user3647093configlist
import org.springframework.beans.factory.annotation.Value
class BootStrap {
@Value('${music.drummers}')
List<String> drummerNames
def init = { servletContext ->
println 'Drummers:'
for(String name : drummerNames) {
println "\t$name"
}
}
def destroy = {
}
}
在应用程序启动时输出以下内容:
Drummers:
Neil Peart
Mike Portnoy
Bill Bruford
Carl Palmer
我希望能帮上忙。
答案 2 :(得分:-1)
在.yml末尾简单添加两行
registrierungsstati: [beantragt, in Prüfung, anerkannt]
qualitätsnachweise:[Techniker,Bachelor,Master,Diplom,Promotion]
并在我的域Class中将它们作为列表检索
List getQualitätsnachweise () {
GrailsApplication grailsApplication
grailsApplication.config.getProperty('qualitätsnachweise')
}
List getRegistrierungsstati () {
GrailsApplication grailsApplication
grailsApplication.config.getProperty('registrierungsstati')
}
另请参见 https://objectcomputing.com/news/2016/08/31/retrieving-config-values-grails-3
答案 3 :(得分:-1)
更正:
List getQualitätsnachweise () {
GrailsApplication grailsApplication = Holders.grailsApplication
grailsApplication.config.getProperty('qualitätsnachweise')
}
List getRegistrierungsstati () {
GrailsApplication grailsApplication = Holders.grailsApplication
grailsApplication.config.getProperty('registrierungsstati')
}
在两种情况下,必须使用Holders.grailsApplication初始化grailsApplication,同样的错误也出现在 https://objectcomputing.com/news/2016/08/31/retrieving-config-values-grails-3
顺便说一句,在域类中使用getter生成List并不是一个好主意,因为hibernate遇到了麻烦,因为hibernate将getter用作数据库字段。因此,我使用了
static List qualitaetsnachweise ()
代替
静态列表getQualitaetsnachweise()
请注意: grailsApplication.config.getProperty('qualitaetsnachweise') 不以列表形式出现,您将以逗号分隔的字符串的形式获取它,您必须通过
进行转换... .split(',')。toList()