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));
Другие вопросы по тегам