我在哪里可以定义grails 4.0.1中grails.util.Holders.config的输入

我在哪里可以定义grails 4.0.1中grails.util.Holders.config的输入,grails,Grails,在Grails2.0中,我可以在Config.groovy中定义列表,并通过grails.util.Holders.Config访问它们 Grails4.0.1中的相应功能是什么 签出配置类: 根据官方文件: Grails支持每环境配置的概念。这个 grails-app/conf中的application.yml和application.groovy文件 目录可以使用YAML或 ConfigSlurper提供的语法 签出配置类: 根据官方文件: Grails支持每环境配置的概念。这个 grail

在Grails2.0中,我可以在Config.groovy中定义列表,并通过grails.util.Holders.Config访问它们

Grails4.0.1中的相应功能是什么

签出配置类:

根据官方文件:

Grails支持每环境配置的概念。这个
grails-app/conf中的
application.yml
application.groovy
文件 目录可以使用YAML或 ConfigSlurper提供的语法

签出配置类:

根据官方文件:

Grails支持每环境配置的概念。这个
grails-app/conf中的
application.yml
application.groovy
文件 目录可以使用YAML或 ConfigSlurper提供的语法


只需在.yml末尾添加2行

registrierungsstati:[beantragt,位于阿内尔坎特普吕丰]

qualitätsnachweise:[技术工、学士、硕士、博士、晋升]
只需在.yml末尾添加两行即可

registrierungsstati:[beantragt,位于阿内尔坎特普吕丰]
qualitätsnachweise:[技术工、学士、硕士、文凭、晋升]
更正:

List getQualitätsnachweise () { 
GrailsApplication grailsApplication = Holders.grailsApplication
grailsApplication.config.getProperty('qualitätsnachweise')
}

}

grailsApplication在这两种情况下都必须使用Holders进行初始化。grailsApplication中也存在相同的错误

顺便说一下,在域类中使用getter生成列表不是一个好主意,因为hibernate遇到了麻烦,因为hibernate将getter作为数据库字段。所以我用

static List qualitaetsnachweise ()
而不是

静态列表getQualitaetsnachweise()

注意: grailsApplication.config.getProperty('qualitaetsnachweise') 不是以列表的形式出现,而是以逗号分隔的字符串形式出现,您必须通过

。拆分(“,”).toList()

更正:

List getQualitätsnachweise () { 
GrailsApplication grailsApplication = Holders.grailsApplication
grailsApplication.config.getProperty('qualitätsnachweise')
}

}

grailsApplication在这两种情况下都必须使用Holders进行初始化。grailsApplication中也存在相同的错误

顺便说一下,在域类中使用getter生成列表不是一个好主意,因为hibernate遇到了麻烦,因为hibernate将getter作为数据库字段。所以我用

static List qualitaetsnachweise ()
而不是

静态列表getQualitaetsnachweise()

注意: grailsApplication.config.getProperty('qualitaetsnachweise') 不是以列表的形式出现,而是以逗号分隔的字符串形式出现,您必须通过

。拆分(',')。toList()

在Grails2.0中,我可以在Config.groovy中定义列表并访问它们 通过grails.util.Holders.config

最好的答案取决于了解有关从何处访问值的上下文,但一般来说,不应该使用
Holders.config
(在Grails2、3和4中也是如此)。您可以选择让DI容器为您注入值的
列表

请参阅上的项目

我希望这有帮助

在Grails2.0中,我可以在Config.groovy中定义列表并访问它们 通过grails.util.Holders.config

最好的答案取决于了解有关从何处访问值的上下文,但一般来说,不应该使用
Holders.config
(在Grails2、3和4中也是如此)。您可以选择让DI容器为您注入值的
列表

请参阅上的项目


我希望这能有所帮助。

对不起,我不懂.yml语法。在配置中。grails 2的groovy我只写了一行kommunikationsart=['Festnetz'、'Handy'、'Fax'、'eMail'、'Homepage']并将其作为Holders.config.kommunikationsart在我的domainclass中的一个列表。现在我的简单问题是:对应的.yml行是什么?如何从我的域类访问它?很抱歉,我不理解.yml语法。在配置中。grails 2的groovy我只写了一行kommunikationsart=['Festnetz'、'Handy'、'Fax'、'eMail'、'Homepage']并将其作为Holders.config.kommunikationsart在我的domainclass中的一个列表。我现在的简单问题是:对应的.yml行是什么?如何从我的域类访问它?这是一个坏主意。编写代码的方式,
grailsApplication.config
将导致
NullPointerException
,因为您尚未初始化本地
grailsApplication-grailsApplication
变量。即使你解决了这个问题,这也不是一个好方法。更好的办法是让DI容器将配置值注入到类中,而不是让类去获取配置值。这是个坏主意。编写代码的方式,
grailsApplication.config
将导致
NullPointerException
,因为您尚未初始化本地
grailsApplication-grailsApplication
变量。即使你解决了这个问题,这也不是一个好方法。更好的办法是让DI容器将配置值注入到类中,而不是让类去获取配置值。这看起来像是按照预期的方式工作。
static List qualitaetsnachweise()
-您确实不应该在域类中使用
static
方法来检索配置值。在任何用例中,这都不是最好的方法。”而且要小心:grailsApplication.config.getProperty('qualitaetsnachweise')不是列表形式的…””-如果您真的想引用
config.getProperty
,应该使用接受类型作为参数的重载版本。例如,
grailsApplication.config.getProperty('qualitaetsnachweise',List,[])
“同样的错误也存在”-我无法使用我在那篇文章中提到的方法生成错误。
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