Spring云流应用程序可配置主题名称

时间:2016-11-08 18:35:54

标签: spring spring-cloud spring-cloud-stream

我正在尝试找到一种方法来配置Spring云流@StreamListener将要监听的主题。我的第一次尝试是尝试使用SPeL来实现这一点,例如。

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

但表达式没有被替换,我最终以

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

有没有办法在启动应用程序时控制主题名称,而不是仅在编译时使用常量?

2 个答案:

答案 0 :(得分:1)

处理BeanPostProcessor的{​​{1}}不支持SpEL或属性占位符;它只能包含绑定到绑定目标的对象(消息通道)的bean名称。

你想要实现什么目标?目的地和通道之间已经有一个间接通过application.properties/yml。

答案 1 :(得分:0)

就我而言,如果目标值之间包含任何空格 - 例如 destination=foo, bar,则会导致错误:

Topic name can only have ASCII alphanumerics.

删除空格后,它对我有用。只是想分享一下。