spring 集成和组件扫描

spring integration and component scan

我是 Spring MVC 的新手,但现在我已经转移到一个新项目,该项目使用 Spring 集成来提供一些服务。 context.xml

中的例子
<int:channel id="example-channel" />
    <int:service-activator input-channel="example-channel" ref="exampleServiceFacade" />

对于每个 servicefacade,我必须将服务绑定到一个通道。

我在徘徊,如果我可以将 classes 映射为通道,就像我可以使用组件扫描映射 bean 一样呢?

<context:component-scan base-package="com.package" />

所以我得到了 this 教程,其中谈到了一些注释:

@IntegrationComponentScan

但我不明白它与 xml 标签服务激活器和通道有什么关系。所以我很困惑。有更多经验的人是否知道我正在尝试做的事情是否可以完成?

我只想扫描定义集成通道的 classes,而不必声明每个 class。

谢谢。

你的问题有点不清楚。任何 Spring 集成自定义 XML 标记都由基础架构解析并在应用程序上下文中注册为 beans。就像你通过原始 <bean>.

那样做

@ComponentScan@Configuration@Bean 等是标记注释,表示 class 将其视为 bean 的应用程序上下文。

因此,使用这两种技术进行应用程序上下文配置,您不会丢失任何东西,并且可以继续用 @Service 标记您 class 并使用其来自 <service-activator ref=""> 的 bean 名称。

现在您可以从另一端完全构建 Spring 集成,而无需任何 XML!请完整阅读上述文档。