gpt4 book ai didi

spring-integration - Spring Integration DSL 动态入站 channel

转载 作者:行者123 更新时间:2023-12-04 07:51:40 24 4
gpt4 key购买 nike

是否可以在运行时使用 spring-integration-dsl 注册 MessageSources?

在我的例子中,我想创建多个 FileReadingMessageSources(基于 UI 的输入),然后将有效负载发送到特定的 channel /jms 路由(从元数据或用户输入中读取)

另一个问题是,是否可以动态注册 IntegrationFlows?

最佳答案

这有点棘手,需要一些 Spring 基础设施知识,但它是可能的:

@Service
public static class MyService {

@Autowired
private AutowireCapableBeanFactory beanFactory;

@Autowired
@Qualifier("dynamicAdaptersResult")
PollableChannel dynamicAdaptersResult;

public void pollDirectories(File... directories) {
for (File directory : directories) {
StandardIntegrationFlow integrationFlow = IntegrationFlows
.from(s -> s.file(directory),
e -> e.poller(p -> p.fixedDelay(1000))
.id(directory.getName() + ".adapter"))
.transform(Transformers.fileToString(),
e -> e.id(directory.getName() + ".transformer"))
.channel(this.dynamicAdaptersResult)
.get();
this.beanFactory.initializeBean(integrationFlow, directory.getName());
this.beanFactory.getBean(directory.getName() + ".transformer", Lifecycle.class).start();
this.beanFactory.getBean(directory.getName() + ".adapter", Lifecycle.class).start();
}
}

}

请调查我的样本,让我知道您不清楚的地方。

关于spring-integration - Spring Integration DSL 动态入站 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com