我正在使用Spring Cloud Connector绑定到数据库。有什么方法可以获取绑定服务的计划吗?当我扩展AbstractCloudConfig
并执行
cloud().getSingletonServiceInfosByType(PostgresqlServiceInfo.class)...
我将获得有关URL以及如何连接到Postgres的信息。 PostgresqlServiceInfo和其他人不携带计划数据。我如何扩展服务信息,以便阅读此信息表VCAP_SERVICES
?
谢谢
答案 0 :(得分:0)
根据设计,Spring Cloud Connectors中的ServiceInfo
类仅携带足够的信息来创建应用程序消耗服务资源所需的连接bean。连接器被设计为与平台无关,并且无法捕获Cloud Foundry上可用的字段plan
,label
和tags
,因为它们可能在其他平台上不可用(例如, Heroku)。
要将plan
信息添加到ServiceInfo
,您需要编写自己的ServiceInfo
类,其中包含该值的字段,然后编写一个CloudFoundryServiceInfoCreator
从框架以VCAP_SERVICES
提供的Map
数据中填充值。有关创建此类扩展的更多信息,请参见project documentation。
另一个(可能更容易)的选择是使用较新的java-cfenv
项目而不是Spring Cloud Connectors。 java-cfenv
仅支持Cloud Foundry,并且可以访问VCAP_SERVICES
中的全部信息。有关如何使用此库的示例,请参见project documentation。