2016-11-08 5 views
0

私は、Springクラウドストリーム@StreamListenerがリスニングするトピックを設定する方法を見つけようとしています。私の最初の試みは、これを得るためにSPeLを使用しようとすることでした。Springクラウドストリームアプリケーション設定可能なトピック名

@StreamListener("#{ systemProperties['topic.name'] }") 

が、発現を交換し、私は

java.lang.IllegalArgumentException: Topic name can only have ASCII alphanumerics, '.', '_' and '-' 

で終わるされていない定数というだけで、コンパイル時に比べてアプリケーションを起動するときにトピック名が何であるかを制御する方法はあります?

答えて

0

@StreamListenerを処理するBeanPostProcessorは、SpELまたはプロパティのプレースホルダをサポートしていません。バインダー宛先にバインドされているオブジェクト(メッセージ・チャネル)のBean名のみを含めることができます。

正確に何を達成しようとしていますか?すでに宛先とチャネルの間には、application.properties /ymlを介して間接的に存在します。

+0

私はアプリケーションのインスタンスが実行時に聴くトピックの数を選択できます。 – user1675642

+1

'spring.cloud.stream.bindings.input.destination = foo、bar'そして' @StreamListener(Sink.INPUT) 'はトピックfooとbarをリッスンします。 –

+0

ありがとう、私はドキュメントでそれを逃した。それは私の問題を解決します。 – user1675642

関連する問題