使用子流创建未连接的 PublishSubscribeChannel
Create a not connected PublishSubscribeChannel with subflows
长话短说:我需要像下面这样的东西。
PublishSubscribeChannel firstChannel = new PublishSubscribeSpec(executor).subscribe(subFlow -> ...).get();
有没有一种方法可以使用尚未(尚未)连接到任何其他流的子流创建 pubsub 通道?
代码段因 PublishSubscribeSpec(Executor) has protected access in PublishSubscribeSpec
而无法运行。
我将需要像这样动态注册通道,而无需任何有关哪些流将使用这些通道的信息。
has protected access in PublishSubscribeSpec
这正是制作它的原因 protected
- 避免像您这样的异常配置问题。在普通 PublishSubscribeChannel
定义中不能像这样提供子流。它是框架中 Java DSL 解析器的一部分,用于确定此类配置并在应用程序上下文中注册相应的 bean。通过显式 get()
调用,您只需完全消除 Java DSL 解析器的挂钩即可理解您的配置。
without any information about which flow(s) will be using these channels.
根据您的 .subscribe(subFlow ->
意图,这不是真的。将子流添加到 PublishSubscribeSpec
确实是“流将使用这些通道的信息”。
也许我们需要从另一个角度来审视您的业务需求。当我们可以简单地从需要 MessageChannel
作为输入的任何其他地方使用 PublishSubscribeChannel
时,没有理由坚持使用子流方法。我的意思是,如果您只是创建一个普通的 PublishSubscribeChannel
然后将其用于 IntegrationFlows.from(MessageChannel)
工厂,您将获得与那些 .subscribe(subFlow ->
连接所期望的相同的运行时结果。
长话短说:我需要像下面这样的东西。
PublishSubscribeChannel firstChannel = new PublishSubscribeSpec(executor).subscribe(subFlow -> ...).get();
有没有一种方法可以使用尚未(尚未)连接到任何其他流的子流创建 pubsub 通道?
代码段因 PublishSubscribeSpec(Executor) has protected access in PublishSubscribeSpec
而无法运行。
我将需要像这样动态注册通道,而无需任何有关哪些流将使用这些通道的信息。
has protected access in PublishSubscribeSpec
这正是制作它的原因 protected
- 避免像您这样的异常配置问题。在普通 PublishSubscribeChannel
定义中不能像这样提供子流。它是框架中 Java DSL 解析器的一部分,用于确定此类配置并在应用程序上下文中注册相应的 bean。通过显式 get()
调用,您只需完全消除 Java DSL 解析器的挂钩即可理解您的配置。
without any information about which flow(s) will be using these channels.
根据您的 .subscribe(subFlow ->
意图,这不是真的。将子流添加到 PublishSubscribeSpec
确实是“流将使用这些通道的信息”。
也许我们需要从另一个角度来审视您的业务需求。当我们可以简单地从需要 MessageChannel
作为输入的任何其他地方使用 PublishSubscribeChannel
时,没有理由坚持使用子流方法。我的意思是,如果您只是创建一个普通的 PublishSubscribeChannel
然后将其用于 IntegrationFlows.from(MessageChannel)
工厂,您将获得与那些 .subscribe(subFlow ->
连接所期望的相同的运行时结果。