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

标签 spring grails

我正在使用 doWithSpring() 向我的应用程序文件添加一个特定于 URL 的运行状况检查。
我在 environment.properties 文件中指定了 URL,并将其加载到“grailApplication.config”中。

我的问题是'grailsApplication' 和'config' 还没有被初始化。
如何获取将位于这些变量中的值。

我可以将运行状况检查创建移动到 doWithApplicationContext() 吗?

最佳答案

您可以使用 GrailsConfigurationAware 接口(interface)让 grails 将 grails 配置对象注入(inject)到 spring bean 中。

示例代码

class HealthChecker implements GrailsConfigurationAware {

    def checkUrlHealth() {
    }

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

然后通过编辑 conf/resources.groovy 将其注册为 spring bean
import chess_api.HealthChecker

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

然后在spring初始化grails和你的bean之后,将使用grails配置调用“setConfiguration”方法。

请注意,此方法不适用于服务,您必须显式注册 spring bean。

关于spring - 在 Application.doWithSpring() 中访问环境属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61530270/

相关文章:

Spring MVC 模型属性值不打印

java - URL 未连接到我的 Spring Boot 应用程序

java - Spring中多个logger库的情况

Spring 交易: unexpected rollback behavior

grails - 为什么在构建 Grails 项目时 @Override 注释不起作用?

grails - 最佳实践,包括 Grails 中的 Angular UI

gradle - 如何从源代码(即github存储库)安装Rundeck?

java - 调用rest api时,无论使用lomboks @Data,方法都是未定义的

grails - 获取表格中选定复选框的列表

mysql - Grails中的SQL查询从两个具有外键关系的表中获取所有数据