我正在使用doWithSpring()向我的Application文件添加一个特定的URL健康检查。我在一个环境.属性文件中指定了URL,并将其加载到'grailApplication.config'中。
我的问题是'grailsApplication'和'config'还没有被初始化.我怎样才能得到位于这些变量中的值。
我可以将健康检查的创建移到doWithApplicationContext()中吗?
你可以使用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。