Spring-integration:@ Header参数的可配置名称?

时间:2015-07-01 13:43:45

标签: java spring spring-integration

我正在使用Spring-integration来收听队列,现在我面临着一个非常愚蠢的错误。事实证明,消息参数的名称拼写错误,导致运行时错误。要修复它,我必须重建java类,因为message属性的名称是硬编码的String。我希望将来更容易解决此类错误,方法是通过properties - 文件配置消息属性的名称,但我似乎找不到办法。它有可能吗?

public void someListenerMethod(@Header("someAttribute")
                               final Long someAttribute) {

我希望将参数设为@Header可配置..

1 个答案:

答案 0 :(得分: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));