gpt4 book ai didi

java - Spring-Integration TCP --> eh-cache 链

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:00 25 4
gpt4 key购买 nike

我有一个带有请求和响应的 Spring-Integration TCP 服务器,它工作正常。现在我必须向我的应用程序添加一个新层。

我必须将消息放入 eh-cache 数据库,然后发回 ACK。目前我只有一个 tcp 客户端,但将来我将有其他来源,如下图所示。

enter image description here

现在的问题是:我可以使用 Spring-Integration 配置此行为吗?我知道我可以在我的 'importService' 上获取消息并将其放在我的 eh-cache 上,以这种方式编写代码:

public MyMessage handler(MyMessage message) {
try {
myCache.put(mykey, message)
} catch (Exception e) {
logger.error("unable to update" + e);
}
return message;
}

但我认为这是不正确的,我只是想知道我是否可以配置我的 spring 配置文件并添加另一个端点以创建一个链。我当前的配置文件是:

<int-ip:tcp-connection-factory id="serverTcpConFact"  type="server"  port="5566"  using-nio="false"        single-use="false"
so-receive-buffer-size="8192"
so-send-buffer-size="8192"
so-tcp-no-delay="true"
task-executor="myTaskExecutor"
deserializer="serializer"
serializer="serializer"/>

<int-ip:tcp-inbound-channel-adapter id="tcpInboundAdapter"
channel="tcpInbound"
connection-factory="serverTcpConFact" />

<int:channel id="tcpInbound" />

<int:service-activator
output-channel="tcpOutbound"
input-channel="tcpInbound"
ref="importService"
method="handler" />

<bean id="importService" class="com.MyImportService" />

<int:channel id="tcpOutbound" />

<int-ip:tcp-inbound-gateway id="mygateway"
request-channel="tcpInbound"
reply-channel="tcpOutbound"
reply-timeout="6"/>

<int-ip:tcp-outbound-channel-adapter id="tcpOutboundAdapter"
channel="tcpOutbound"
connection-factory="serverTcpConFact" />

我正在寻找公共(public)示例,但没有找到 eh-cache 示例和链示例。谢谢 !!

最佳答案

嗯,看起来它足以将缓存逻辑移动到 ChannelInterceptor:

<int:channel id="tcpInbound">
<int:interceptors>
<bean class="com.my.proj.si.CachePutChannelInterceptor"
</int:interceptors>
</int:channel>

当你需要使用缓存时,可以从任何地方使用这个拦截器。

关于java - Spring-Integration TCP --> eh-cache 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806238/

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