根据 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 中定义自定义连接池的替代方法?
问候
好的,我找到了解决我的问题的方法。
在 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)
然后一切正常。
希望这可以帮助偶然发现这个问题的其他人。