我想遍历当前环境的所有可用dataSource,以尝试查看其中是否包含特定的域实例。每个环境都有不同的数据源。

到目前为止,我掌握的最好的是grailsApplication.config.findAll { it.key.contains('dataSource_') }。有没有更好或更合理的方法来做到这一点?

最佳答案

您还可以在应用程序上下文中查询bean名称。

就像是

ctx.beanDefinitionNames.findAll {it.contains('dataSource')}

至少这就是Datasources插件中的DatasourcesUtils所做的-

http://plugins.grails.org/grails-datasources/trunk/src/groovy/com/burtbeckwith/grails/plugin/datasources/DatasourcesUtils.groovy

10-06 01:18