来自 Java 应用程序的 Pivotal Cloud foundry 访问服务

Pivotal Cloud foundry Access Service from Java App

我如何访问绑定到 java 应用程序的用户提供的服务的凭据。

例如,如果我创建这样的服务:

cf cups <service instance> -p "DB_URL, DB_USERNAME, DB_PASSWORD".

并绑定到 java 应用程序

在 Java Main 中,我将如何访问该服务?

`  public static void main(String[] args) throws Exception{ 

    ??????
}`

在您的 Java 应用中,您将访问 VCAP_SERVICES 环境变量。

您可以在此处找到详细信息: http://docs.pivotal.io/pivotalcf/1-7/services/binding-credentials.html

Spring Cloud Connectors can be used to parse the VCAP_SERVICES environment variable and provide the credentials in a Java object model. If you format that user-provided service instance credentials in a custom way, then you would need to write some extension code 告诉连接器如何解析凭据。

更好的方法是以连接器已经理解的方式格式化服务实例凭据。最简单的方法通常是提供一个连接字符串。 Connectors docs 中有一些提示显示了连接器可以理解的各种数据库类型的凭据格式。所以你可以这样做:

cf cups <service instance> -p '{"url", "mysql://username:password@hostname:3306/dbname"}'

cf cups <service instance> -p '{"jdbcUrl": "jdbc:mysql://hostname:3306/dbname?user=username&password=password"}'

或 Postgres、Oracle、DB2 或 SqlServer 的等效项。

如果您在项目中包含 Spring Service Connector,连接器将检测绑定的服务并为您创建必要的连接对象(例如 DataSource)。