访问 grails3 resources.groovy 中的属性占位符不起作用

Dan*_*ter 3 grails

根据 grails spring 文档(https://grails.github.io/grails-doc/3.0.3/guide/spring.html#propertyPlaceholderConfiguration),我试图访问我在外部 . yml 文件(fe database.user)来自 resources.groovy 文件。

我尝试了以下方法:

def username = "${grailsApplication.config.dataSource.username}"
Run Code Online (Sandbox Code Playgroud)

在 application.yml 中,此属性按以下方式定义:

dataSource:
    username: ${database.username}
Run Code Online (Sandbox Code Playgroud)

除了resources.groovy 之外,这个配置在grails3 中的任何地方都适用。

有没有办法访问已解析的属性?或者是否有我不知道的在 grails 3 中定义自定义连接池的替代方法?

问候

Dan*_*ter 5

好的,我找到了解决我的问题的方法。

在 application.yml 中,占位符 ${database.username} 必须按以下方式定义:

database:
    username: ${database.username}
Run Code Online (Sandbox Code Playgroud)

resources.groovy里面:

def username = "${grailsApplication.config.database.username}"
Run Code Online (Sandbox Code Playgroud)

然后一切正常。

希望这可以帮助偶然发现这个问题的其他人。