我正在尝试找到一种方法来配置Spring云流@StreamListener将要监听的主题。我的第一次尝试是尝试使用SPeL来实现这一点,例如。
@StreamListener("#{ systemProperties['topic.name'] }")
但表达式没有被替换,我最终以
结束java.lang.IllegalArgumentException: Topic name can only have ASCII alphanumerics, '.', '_' and '-'
有没有办法在启动应用程序时控制主题名称,而不是仅在编译时使用常量?
答案 0 :(得分:1)
处理BeanPostProcessor
的{{1}}不支持SpEL或属性占位符;它只能包含绑定到绑定目标的对象(消息通道)的bean名称。
你想要实现什么目标?目的地和通道之间已经有一个间接通过application.properties/yml。
答案 1 :(得分:0)
就我而言,如果目标值之间包含任何空格 - 例如 destination=foo, bar
,则会导致错误:
Topic name can only have ASCII alphanumerics.
删除空格后,它对我有用。只是想分享一下。