【发布时间】:2019-06-03 11:11:57
【问题描述】:
我正在使用 Spring Cloud Stream。
我不喜欢使用@Input 或@Ouput 注释的接口然后使用该接口的@EnableBindings 的方法,因为我的代码中有很多配置内容。
有没有办法使用 XML 配置来配置它?
谢谢!
【问题讨论】:
标签: spring spring-integration spring-cloud spring-cloud-stream
我正在使用 Spring Cloud Stream。
我不喜欢使用@Input 或@Ouput 注释的接口然后使用该接口的@EnableBindings 的方法,因为我的代码中有很多配置内容。
有没有办法使用 XML 配置来配置它?
谢谢!
【问题讨论】:
标签: spring spring-integration spring-cloud spring-cloud-stream
“因为我的代码中有很多配置内容” 并不是 XML 与注释的真正问题。如果一个人对他们的设计不小心,不管你采取什么方法,你都会一团糟。所以基本上这不是一个正当的理由和/或担忧,而是个人喜好。
在您的 spring-cloud-stream 应用程序中可以使用 XML;毕竟,实际的应用程序实际上是一个 Spring Integration(SI) 应用程序,它从消息通道接收和/或发送消息通道。
但是,对于@EnableBindings, @Input or @Ouput,必须了解其核心目的是:
协助提供此类资源(队列、主题)
等等。 . .
当然,您可以通过使用纯 SI 并使用入站/出站适配器、连接和会话工厂、重试模板等自行处理,但这不构成 spring-cloud-stream 应用程序。
另外,不要忘记 Spring Boot,其中很多东西是根据约定/意见创建的,你根本不需要做任何事情(除了在你的类路径中有一个自动配置 JAR)和spring-cloud-stream 真正建立在这些概念之上,只需要您提供一个开箱即用的配置元素 - @EnableBindings,其余的由我们负责。
所以实际上问题是真的启动还是不启动 - 不是 XML 与 Annotation。
话虽如此,我们一直在探索可以简化配置的选项,所以如果您有建议,请分享。
【讨论】: