Выражение фильтра Spring Integration с использованием SPeL

У меня есть компонент конфигурации со списком допустимых значений:

@Component
public class Conf {
    public List<String> getAllowedValues() {
        return Arrays.asList("A", "B", "C", "D");
}

Я заполнил заголовки своих сообщений полем под названием someValue и хочу использовать элемент фильтра для исключения сообщений, в которых someValue отсутствует в списке разрешенных значений.

Мой контекст выглядит так:

<int:filter expression="#{conf.allowedValues}.contains(headers.get('someValue'))"/>

Но я получаю: SpelParseException: EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'comma(,)'


person Paul McKenzie    schedule 06.07.2011    source источник


Ответы (2)


Ответ был предоставлен здесь:

<int:filter expression="@conf.allowedValues.contains(headers.get('someValue'))"/>
person Paul McKenzie    schedule 11.07.2011

У меня есть более простое (возможно, не лучшее) решение для этого.

<int:filter expression="{"A", "B", "C", "D"}.contains(headers.get('someValue'))" />

ссылка

person rafaelektron    schedule 21.07.2015