2015-02-13 6 views
4

Я хотел бы использовать bean-компонент с помощью метода, аннотированного с помощью @Transformer, для преобразования сообщения, получающего часть его заголовков с помощью аннотации @Header. Есть ли способ сделать это с помощью Java DSL (с Java 7, так что нет lambdas)? Это не похоже на это.Как использовать компонент @Transformer с интеграцией Spring Integration Java DSL?

ответ

1

Вы можете сделать это следующим образом:

.handle("myTransformer", "myMethod") 

если ваш трансформатор не возвращается Message.

С другой стороны, если вы уже используете @Transformer там вы можете добавить channel атрибуты, чтобы сделать реальную конечную точку для этого метода и использовать эти каналы из IntegrationFlow, например, .gateway("transformChannel")

С 1.1 мы собираемся добавить еще несколько EIP-методов, чтобы сделать его более гибким для подобных случаев.

Не стесняйтесь повышать GH issue по этому вопросу!

+1

Принимает этот ответ, так как я считаю, что он соответствует тому, что я ожидал от JAVa DSL больше, чем другому. Было бы неплохо иметь метод .transform (myTransformerBean()), ожидая увидеть, как 1.1 предложит в этом отношении. Благодарю вас в любом случае! :) – user180940

+0

О, и я просто отправлю запрос Pull, чтобы добавить перегрузку фильтра фильтра .filter ("") SpEL. – user180940

0

Это ...

.transform("@transformerBean.someMethod(payload, headers['foo'])") 

... должно работать.

Смежные вопросы