Когда вы создаете предоставленную пользователем услугу следующим образом
cf cups ups-example1 -p '{"user":"user1", "password":"password1"}'
и привязываете ее к вашему приложению, информация, предоставленная в предоставленной пользователем услуге, отображается в вашем VCAP_SERVICES
переменная окружения.
Это должно выглядеть примерно так:
{
"user-provided": [
{
"credentials": {
"password": "password1",
"user": "user1"
},
"label": "user-provided",
"name": "ups-example1"
}
]
}
С помощью Springs CloudFoundryVcapEnvironmentPostProcessor оно отображается в свойство среды, к которому может обращаться vcap.services.ups-example1.credentials
.
Чтобы отобразить эти свойства в объект Java, вы можете использовать @ConfigurationProperties
@Configuration
@ConfigurationProperties("vcap.services.ups-example1.credentials")
public class UserProvidedServiceOneProperties {
private String user;
private String password;
// getters & setters
}
Если вы хотите отобразить несколько предоставляемых пользователем услуг в один объект, вы можете использовать внутренние классы для этого варианта использования
@Configuration
public class UserProvidedServicesProperties {
@Autowired
private UserProvidedServiceOneProperties userProvidedService1;
@Autowired
private UserProvidedServiceTwoProperties userProvidedService2;
// getters & setters
@Configuration
@ConfigurationProperties("vcap.services.ups-example1.credentials")
public static class UserProvidedServiceOneProperties {
private String user;
private String password;
// getters & setters
}
@Configuration
@ConfigurationProperties("vcap.services.ups-example2.credentials")
public static class UserProvidedServiceTwoProperties {
private String user;
private String secret;
private String url;
// getters & setters
}
}