在Application.doWithSpring()中访问环境属性。

问题描述 投票:0回答:1

我正在使用doWithSpring()向我的Application文件添加一个特定的URL健康检查。我在一个环境.属性文件中指定了URL,并将其加载到'grailApplication.config'中。

我的问题是'grailsApplication'和'config'还没有被初始化.我怎样才能得到位于这些变量中的值。

我可以将健康检查的创建移到doWithApplicationContext()中吗?

spring grails
1个回答
0
投票

你可以使用GrailsConfigurationAware接口来让grails将grails配置对象注入到spring beans中。

示例代码

class HealthChecker implements GrailsConfigurationAware {

    def checkUrlHealth() {
    }

    @Override
    void setConfiguration(Config config) {
        // TODO with grails configurations
    }
}

然后通过编辑confresources.groovy将其注册为spring bean。

import chess_api.HealthChecker

// Place your Spring DSL code here
beans = {
    healthChecker(HealthChecker)
}

然后在spring初始化grails和你的Bean之后,"setConfiguration "方法将被调用,并提供grails的配置。

请注意,这个方法不能用于服务,你必须明确地注册spring bean。

© www.soinside.com 2019 - 2024. All rights reserved.