Spring Cloud Connector计划信息

时间:2019-03-14 13:15:41

标签: spring spring-boot spring-cloud cloudfoundry spring-cloud-connectors

我正在使用Spring Cloud Connector绑定到数据库。有什么方法可以获取绑定服务的计划吗?当我扩展AbstractCloudConfig并执行

cloud().getSingletonServiceInfosByType(PostgresqlServiceInfo.class)...

我将获得有关URL以及如何连接到Postgres的信息。 PostgresqlServiceInfo和其他人不携带计划数据。我如何扩展服务信息,以便阅读此信息表VCAP_SERVICES

谢谢

1 个答案:

答案 0 :(得分:0)

根据设计,Spring Cloud Connectors中的ServiceInfo类仅携带足够的信息来创建应用程序消耗服务资源所需的连接bean。连接器被设计为与平台无关,并且无法捕获Cloud Foundry上可用的字段planlabeltags,因为它们可能在其他平台上不可用(例如, Heroku)。

要将plan信息添加到ServiceInfo,您需要编写自己的ServiceInfo类,其中包含该值的字段,然后编写一个CloudFoundryServiceInfoCreator从框架以VCAP_SERVICES提供的Map数据中填充值。有关创建此类扩展的更多信息,请参见project documentation

另一个(可能更容易)的选择是使用较新的java-cfenv项目而不是Spring Cloud Connectors。 java-cfenv仅支持Cloud Foundry,并且可以访问VCAP_SERVICES中的全部信息。有关如何使用此库的示例,请参见project documentation