gpt4 book ai didi

java - 自定义Spring集成出站网关实现

转载 作者:行者123 更新时间:2023-12-01 22:23:12 25 4
gpt4 key购买 nike

如何指定出站服务实现 gateway在Spring集成中?如果出站网关用于双向通信,通常用于提供与外部系统的集成,而服务激活器用于本地服务调用,那么如何为自定义传输/外部系统实现出站网关? Gateway namespace入站网关可以设置服务接口(interface),那么出站网关的服务实现呢?

<int:gateway id="cafeService"
service-interface="org.cafeteria.Cafe"
default-request-channel="requestChannel"
default-reply-channel="replyChannel"/>

最佳答案

最简单的机制是将服务接口(interface)实现为 POJO 并从

<service-activator input-channel="..." output-channel="..." 
ref="myPojo" method="process" />

哪里

public class MyPoJo {

public Bar process(Foo foo) {

...

}

}

如果你想更正式地做到这一点,你可以扩展 AbstractReplyProducingMessageHandler 。并将其包装在消费者端点中,但大多数人更喜欢 POJO 路由,因为这样您就没有框架依赖性。

编辑:

如果您使用 Spring Tool Suite(基于 eclipse),有一个入门项目可以帮助您使用模板构建一个成熟的网关;它包括命名空间解析器和所有内容的入门类( New | Spring | Spring Project | Integration ... )。该模板托管在此处。它们有点过时了(例如需要 SI 更新,并且我们不再使用 docbook - 至少在 master 上 - 我们使用 asciidoc),但它应该会带你走很长的路。您还可以查看标准解析器以获取有关命名空间的帮助。

如果您认为您的网关可能具有广泛的吸引力,请考虑将其贡献给扩展程序。

编辑2:

根据您的评论...

as far as I understood the outbound gateways are used to provide integration with external systems and service activators are for local service calls

情况通常如此,但是没有什么可以阻止您通过<service-activator/>调用外部服务。 - 这是个人喜好的问题,没有真正的理由创建正式的适配器,除非您希望将其发布以在您的组织内使用和/或以更正式的方式将其贡献给社区。

关于java - 自定义Spring集成出站网关实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284414/

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