1

我刚开始使用spring cloud dataflow项目。

我尝试使用http://start-scs.cfapps.io推荐的 spring initialr 创建一些自定义组件

我发现快速选择的一些组件正在发生冲突

例如,我生成了一个具有以下两个启动器的

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud.stream.app</groupId>
        <artifactId>spring-cloud-starter-stream-sink-rabbit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud.stream.app</groupId>
        <artifactId>spring-cloud-starter-stream-source-file</artifactId>
    </dependency>

我得到的错误是(使用漂亮的 spring boot 1.4.0 诊断)是

***************************
APPLICATION FAILED TO START
***************************

Description:

There is a circular dependency between 2 beans in the application context:
    - fileSourceFlow defined in org.springframework.cloud.stream.app.file.source.FileSourceConfiguration
    - org.springframework.cloud.stream.app.rabbit.sink.RabbitSinkConfiguration
    - amqpChannelAdapter

我还发现文件和兔子组件甚至没有被引入,除非我明确导入它们的配置文件。

@SpringBootApplication
@Import(
        {
                FileSourceConfiguration.class,
                RabbitSinkConfiguration.class
        }
)
public class CommonfileingestorApplication {

    public static void main(String[] args) {
        SpringApplication.run(CommonfileingestorApplication.class, args);
    }
}
4

1 回答 1

1

例如,我生成了一个具有以下两个启动器的

与典型的 Boot 启动器不同,流启动器和任务启动器旨在用作独立的应用程序,因此您可以单独对它们进行自定义。如果您必须将多个应用程序组合为一个复合单元,则必须使用AggregateBuilderAPI - 请参阅此示例

我还发现文件和兔子组件甚至没有被引入,除非我明确导入它们的配置文件。

是的 - 请查看自定义步骤的参考指南

于 2016-08-09T15:56:59.013 回答