Spring-интеграция: настраиваемое имя @Header-параметра?
Я использую Spring-integration
для прослушивания очередей, и теперь я столкнулся с довольно глупой ошибкой. Оказывается, что имя параметра сообщения было написано с ошибкой, что привело к ошибкам во время выполнения. Чтобы это исправить, мне нужно пересобрать java-класс, так как имя атрибута сообщения жестко закодировано. String
, Я бы хотел, чтобы в будущем такие ошибки было легче устранить, сделав имя атрибутов сообщения настраиваемым с помощью properties
-файл, но я не могу найти способ сделать это. Это вообще возможно?
public void someListenerMethod(@Header("someAttribute")
final Long someAttribute) {
Я хотел бы здесь сделать параметр для @Header
конфигурируемый..
1 ответ
Решение
Я отвечу сам, поскольку я нашел один способ сделать это (хотя я не уверен, что это оптимально..)
@Value("${my.header.property.name}")
private String myHeaderPropertyName;
public void someListenerMethod(@Headers
final Map<String, Object> headerAttributes) {
final Long myHeaderAttribute = (Long) headerAttributes.get(myHeaderPropertyName));