我使用Spring Cloud Connector绑定到数据库。有没有办法获得绑定服务的计划?当我扩展AbstractCloudConfig
并做
cloud().getSingletonServiceInfosByType(PostgresqlServiceInfo.class)...
我将获得有关网址的信息以及如何连接到postgres。 PostgresqlServiceInfo和其他人不携带计划数据。如何扩展服务信息,以便从VCAP_SERVICES
中读取此信息?
谢谢
根据设计,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。