Программное получение имени потока

Системная информация

Spring Cloud Data Flow Cloud Foundry: v1.1.0.RELEASE Pivotal Cloud Foundry: v1.7.12 Клиент CF (Windows): cf.exe версии 6.23.1+a70deb3.2017-01-13 cf-v3-plugin: 0.6.7

Я хотел бы ввести имя потока в bean-компонент, определенный в моем пользовательском исходном модуле. Изучив конечную точку /env развернутого потока, я обнаружил системное свойство SPRING_CLOUD_APPLICATION_GROUP, поэтому я ввел его в свой bean-компонент следующим образом.

/**
 * application name
 */
@Value("#{ systemProperties['SPRING_CLOUD_APPLICATION_GROUP'] }")
private String applicationName;

Проблема здесь в том, что это, по-видимому, связано с развертывателем Cloud Foundry, что, с моей точки зрения, не очень хорошо для переносимости.

В Spring XD для этой цели существовал заполнитель xd.stream.name.

Есть ли способ сделать это портативным способом.

Спасибо


person Paul Barriscale    schedule 14.02.2017    source источник


Ответы (1)


Все реализации развертывания должны учитывать это имя переменной, так что вы должны быть готовы к работе.

Однако нет строгих требований, чтобы это передавалось как переменная среды (ваш код предполагает системное свойство, даже не уверен, что это работает, не так ли?). Использование абстракции Spring Environment — лучший способ оставаться переносимым здесь.

person ebottard    schedule 15.02.2017
comment
Извините за задержку ответа. Системное свойство работает как часть интеграционного теста, но, очевидно, я контролировал внедрение этого свойства. Мне так и не удалось развернуть его на PCF. Однако подход Environment сработал. Спасибо. - person Paul Barriscale; 01.03.2017