使用XML文件而不是注释的Spring Cloud Stream配置

时间:2019-01-08 17:58:35

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

我正在使用Spring Cloud Stream。

我不喜欢用@Input或@Ouput注释接口的方法,然后使用该接口的@EnableBindings,因为我的代码中散布了很多配置内容。

有什么方法可以使用XML配置进行配置?

谢谢!

1 个答案:

答案 0 :(得分:3)

“因为我的代码中分散了很多配置内容” 并不是XML与注解的真正问题。如果一个人对他们的设计不小心,那么采用哪种方法都没关系,那将会是一团糟。因此,基本上,这不是有效的理由和/或关注,而是个人喜好。

在spring-cloud-stream应用程序中有多种使用XML的方法;毕竟,实际的应用程序实际上是一个Spring Integration(SI)应用程序,可以从消息通道接收消息和/或从消息通道发送消息。 但是,关于@EnableBindings, @Input or @Ouput,必须了解其核心目的是:

  • 创建SI渠道并将其绑定到活页夹公开的资源(队列,主题)
  • 以协助提供此类资源(队列,主题)

    等。

当然,您可以自己依靠纯SI并使用入站/出站适配器,连接和会话工厂,重试模板等来自己照顾它,但这不会构成spring-cloud-stream应用程序。

此外,不要忘记Spring Boot,它基于约定/意见创建了很多东西,而您根本不需要做任何事情(除了在类路径中具有自动配置JAR之外),而且spring-cloud-stream真正基于这些概念,只需要您提供一个开箱即用的单个配置元素-@EnableBindings,其余的工作我们都会做。

因此实际上,问题实际上是要引导还是不引导-不是XML vs Annotation。

话虽如此,我们一直在探索可以简化配置的选项,因此,如果您有建议,请与我们分享。