【问题标题】:Converting Java -> Grails ... How do I load these properties?转换 Java -> Grails ...如何加载这些属性?
【发布时间】:2011-03-21 13:56:10
【问题描述】:

我正在将 Java Web 应用程序转换为 Grails (1.2.1)。在我的 Java 应用程序中,我有一个从“.properties”文件加载属性的单例。我已经看到我可以将该加载放入“Config.groovy”conf 文件中。如果我的属性在 Config.groovy 中加载,我如何将它们加载到我的 Java 文件中?这是在 java 中加载 Config 时我的操作方式...

长间隔 = ConfigSingleton.getInstance().getGlobalCacheRefreshInterval();

谢谢, - 戴夫

【问题讨论】:

  • 您希望将.properties 文件内容移动到Config.groovy,还是在应用程序启动期间加载.properties 文件?

标签: grails


【解决方案1】:

改编自Grails User Guide:

您可以在grails-app/conf/Config.groovy中添加自己的配置,例如:

globalCacheRefreshInterval = 120

稍后在您的应用程序中,您可以通过以下两种方式之一访问这些设置。最常见的是通过GrailsApplication 对象,它可以作为控制器和标签库中的变量使用:

Long interval = grailsApplication.config.globalCacheRefreshInterval

另一种方法是获取对 ConfigurationHolder 类的引用,该类包含对配置对象的引用:

def config = org.codehaus.groovy.grails.commons.ConfigurationHolder.config
Long interval = config.globalCacheRefreshInterval

如果您想从 Java 类访问此配置,您可以使用:

import org.codehaus.groovy.grails.commons.ConfigurationHolder;
...
Map config = ConfigurationHolder.getFlatConfig();
Long interval = (Long) config.get("globalCacheRefreshInterval");

注意Config.groovy 中的正确类型。在上述情况下,您的配置属性必须定义为 Long:

globalCacheRefreshInterval = 120L

【讨论】:

  • 您好,我想将配置添加到 Config.groovy 文件中,以便回答部分问题,但是如何从 .java 文件访问该文件?换句话说,如何在 Java 中编写“def config = org.codehaus.groovy.grails.commons.ConfigurationHolder.config Long interval = config.globalCacheRefreshInterval”?
【解决方案2】:

您还应该检查ConfigSlurper class(这是 grails 用来加载其配置文件的内容)。

【讨论】:

    【解决方案3】:

    Dave 如果您需要按原样加载属性文件而无需手动将它们移动到 Config.groovy,您可以在 Config.groovy 文件中执行以下操作:

     grails.config.locations = [
              "file:" + "/pathWhereFileLives/fileName.properties"
      ]
    

    这将加载您在 Grails 配置类文件中的所有属性。需要注意的是,如果您在 Config.groovy 和属性文件中具有相同名称的属性,则属性文件中的属性将覆盖 Config.groovy 中的属性值

    您可以找到有关 Grails 外部配置的更多信息here。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      相关资源
      最近更新 更多