gpt4 book ai didi

grails - Grails从环境文件访问属性

转载 作者:行者123 更新时间:2023-12-02 15:14:15 25 4
gpt4 key购买 nike

在我的Config.groovy中,我通过以下方式合并属性文件:

grails.config.locations << "file:${userHome}/environment.properties" << "file:${userHome}/passwords.properties"

我有两个问题:
  • 在Service层中 Autowiring 时,使用GrailsApplication我可以检索Config.groovy中定义的属性,但不能检索文件
  • 中定义的那些属性
  • 我无法在作业中自动连接GrailsApplication(使用Quartz插件)

  • 谁能阐明这些问题?

    最佳答案

    我要做的是拥有一个外部Config.groovy文件,例如:MyConfig.groovy

    在标准grails Config.groovy文件的末尾,我具有以下内容:

    def ENV_NAME = "MY_EXTERNAL_CONFIG"
    if(!grails.config.locations || !(grails.config.locations instanceof List)) {
    grails.config.locations = []
    }
    if(System.getenv(ENV_NAME)) {
    grails.config.locations << "file:" + System.getenv(ENV_NAME)
    } else if(System.getProperty(ENV_NAME)) {
    grails.config.locations << "file:" + System.getProperty(ENV_NAME)
    } else {
    println "No external Configs found."
    }

    因此,现在您可以在生产环境中的任何地方拥有MyConfig.groovy文件(例如),然后在启动tomcat之前将Environment系统变量设置为指向该文件(或将其作为参数传递给startup.sh):
    MY_EXTERNAL_CONFIG="/home/tomcat/configs/MyConfig.groovy"
    export MY_EXTERNAL_CONFIG

    而已。现在,您具有一个外部MyConfig.groovy文件。可从grails应用程序访问其中的属性,因为它们是标准Config.groovy的一部分
    import org.codehaus.groovy.grails.commons.*
    //...
    ConfigurationHolder.config.foo.bar.hello

    关于grails - Grails从环境文件访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013770/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com