我有一个Spring集成流项目,它公开了一个Rest网关,在接收到Rest POST请求后,它会执行一些较小的逻辑。基于一些有效载荷参数,我想动态激活另一个Spring集成流,并将消息路由到该流中的指定通道,我可以在基于有效载荷的主流中发现该通道。子流将把响应消息放在主流中定义的指定通道中。
我如何才能实现这一点。
请参阅动态ftp示例,该示例使用自定义路由器来实例化子流并路由到新流的通道。
另请参阅我对这个问题的回答及其对类似机制的后续介绍,这次使用java配置进行入站邮件适配器。
从版本1.2开始,Spring Integration Java DSL为运行时流注册提供了API:
@Autowired
private IntegrationFlowContext context;
...
IntegrationFlow myFlow = f -> f
.<String, String>transform(String::toUpperCase)
.transform("Hello, "::concat);
String flowId = this.context.register(myFlow);
MessagingTemplate messagingTemplate = this.context.messagingTemplateFor(flowId);
assertEquals("Hello, SPRING",
messagingTemplate.convertSendAndReceive("spring", String.class));
this.context.remove(flowId);
因此,根据您的逻辑,您可以构建和执行一个或另一个流。
围绕该API,您甚至可以构建一些缓存,不要多次注册相同的流,而是在第一次注册后重用。
主要内容:1. 工程结构,2. Spring监听器,3. 注册Spring Bean,4. Struts.xml,5. 示例,用例1,用例 2,参考在本教程中,我们来学习Struts2和Spring的集成。 1. 工程结构 下面的图是本教程的项目文件夹结构。 2. Spring监听器 配置Spring监听器 “org.springframework.web.context.ContextLoaderListener” 到 web.xml 文件中。 web.xml 3. 注册Spring Bean
主要内容:1. 工程文件夹结构,2. MySQL表结构结构,3. Hibernate相关配置,5. Struts2相关,6. Spring相关配置,7. JSP 页面,8. struts.xml,9. Struts 2 + Spring,10. 运行实例,参考在本教程中,它显示的集成 “Struts2 + Spring + Hibernate“,请务必检查以下之前继续学习教程。 Struts2 + Hibernate集成实例 Struts2 + Spring 集成实例 参见集成步骤总结: 获取所
基于spring集成的转换器使用来自一个系统的消息,检查、转换并将其发送到另一个系统。 如果目标系统关闭,我们将停止入站适配器,但也希望在本地保留或转发当前“正在运行”的转换消息。为此,只需将消息从正常输出通道动态地重新路由到某个“备份”通道。 在文档中,我只找到了根据消息头路由消息的选项(因此,在流程之前的某个步骤中,一旦targer系统不可用,我将不得不动态添加这些消息),或者基于有效负载类型
我正在尝试用EmbeddedMongoDB测试我的spring data mongodb存储库,这些存储库是从MongoRepository扩展的接口。与本教程一样,我希望创建不使用spring应用程序上下文的测试,如果我在存储库类中使用普通mongoTemplate,这是可以实现的。 因此,是否可以通过传递Mongo&MongoTemplate实例,使用提供的实用工具方法来实例化MongoRep
本文向大家介绍Spring web集成rabbitmq代码实例,包括了Spring web集成rabbitmq代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring web集成rabbitmq代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 引入java包: 本项目中仅引入了四个java包:amqp-client-
可以在运行时向spring integration dsl注册MessageSources吗? 在我的例子中,我想创建多个FileReadingMessageSources(基于UI的输入),然后将有效负载发送到特定的通道/jms路由(从元数据或用户输入读取) 另一个问题是,是否可以动态注册IntegrationFlows?