теперь мне нужно иметь возможность изменять введенное свойство на основе значения заголовка
Свойства и компоненты создаются при запуске приложения и обычно не изменяются пока приложение работает. Они оба имеют область приложения.
С другой стороны, значения заголовка могут изменяться для каждого сообщения, которое обрабатывается вашим приложением.
Как вы сами себе предложили: вы можете внедрить оба свойства в Бин и предоставить метод, который вызывается один раз для каждого сообщения, чтобы получить правильное значение
@PropertyInject(PROPERTY_A)
private String propertyA;
@PropertyInject(PROPERTY_B)
private String propertyB;
// called for every message processing
public String pickProperty(@Header("msgVersion") String msgVersion) {
if (msgVersion.equals("A")) {
return propertyA;
} else {
return propertyB;
}
}
Это не обходной путь , но просто метод, который возвращает другой результат, основанный на вводе.