如何查找绑定到应用程序的所有数据源

Posted

技术标签:

【中文标题】如何查找绑定到应用程序的所有数据源【英文标题】:How to find all DataSources binding to an application 【发布时间】:2018-10-09 00:12:09 【问题描述】:

我想使用 spring-boot、spring-cloud 将所有 DataSources 绑定到 Cloud Foundry 应用程序。 有没有办法获取列表? 如果我可以获得服务名称,我也可以使用

AbstractCloudConfig.connectionFactory().dataSource(serviceId)

创建数据源。

【问题讨论】:

【参考方案1】:

您可以这样做来枚举数据库服务列表并为每个服务获取一个DataSource

Cloud cloud = abstractCloudConfig.cloud();
List<ServiceInfo> serviceInfos = cloud.getServiceInfos(DataSource.class);
List<DataSource> dataSources = new ArrayList<>();
for (ServiceInfo serviceInfo : serviceInfos) 
    dataSources.add(cloud.getServiceConnector(serviceInfo.getId, null));

【讨论】:

【参考方案2】:

DataSources 配置是在 Cloud Foundry 的“VCAP_SERVICES”变量内的容器环境中设置的。 System.getenv('VCAP_SERVICES') 应该列出您案例中的所有数据源。

参考: https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#VCAP-SERVICES

【讨论】:

以上是关于如何查找绑定到应用程序的所有数据源的主要内容,如果未能解决你的问题,请参考以下文章

如何查找传出IP地址所属的应用服务?

WPF。查找绑定到特定属性的控件

WPF:如何使用 MVVM 将命令绑定到 ListBoxItem?

如何查找具有特定数据属性的所有标签?

如何将 DataSource 绑定到 InitialContext 以进行 JUnit 测试? [复制]

python:属性查找与绑定方法