grails - 如何使用外部服务作为Grails应用程序配置的来源?

标签 grails configuration groovy

Grails文档的Section 3.4表示可以从外部来源配置Grails应用程序:

grails.config.locations = [
    "classpath:${appName}-config.properties",
    "classpath:${appName}-config.groovy",
    "file:${userHome}/.grails/${appName}-config.properties",
    "file:${userHome}/.grails/${appName}-config.groovy" ]

另外,可以通过指定一个类作为配置脚本来加载配置:
grails.config.locations = [com.my.app.MyConfig]

我的问题是:
  • 您能否举一个MyConfig类实现的外观示例?从文档中还不清楚。
  • 如果我想使用一些外部JSON REST服务作为配置数据的来源,那么如何实现呢?
  • 最佳答案

    回答第二个问题:您可以在BootStrap.groovy init闭包中执行此操作,因为从根本上讲,它允许您执行任何代码:

    // Inject grails app
    def grailsApplication
    
    def init = { servletContext ->
        def externalValue = getItUsingRest(someUrl)
        grailsApplication.config.my.custom.var = externalValue
    }
    

    根据您使用的grails版本,您可能需要使用
    org.codehaus.groovy.grails.commons.ConfigurationHolde.config
    

    改为配置。

    关于grails - 如何使用外部服务作为Grails应用程序配置的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536288/

    相关文章:

    grails - 处理网络连接停顿的Grails

    Grails - 使用 gspeach 测试集合中的第一个元素

    grails - Grails Mail Plugin无法安装-尝试在Config中修复,但仍然无法正常工作

    grails - grails 3.2.6无法初始化测试数据 “is not a domain class or GORM has not been initialized correctly”

    android - Gradle Exec 任务从命令行构建运行,但不从 Android 构建运行

    .net - Traefik不会路线

    java - 如何更改 Struts 2 中 struts.xml 的默认位置?

    unit-testing - 在 PHPUnit 中运行特定测试套件时,如何跳过运行缓慢的测试,但在需要完整代码覆盖率时仍然运行所有测试?

    grails - Grails:以多对多关系添加数据会产生错误

    java - 在 Groovy 中解析 JSON 数组