Spring集成应用程序和缓存

紫晶

在我想要缓存的应用程序之间具有带有入站http网关和出站http网关的spring集成应用程序,以避免不必要的请求。我唯一的解决方案是在将缓存的结果路由回回复通道后再添加带有高速缓存和路由器的拦截器,并且不将其缓存到出站,但是这种解决方案对我而言似乎很棘手和丑陋。当入站网关具有相同的请求和答复通道时(当返回具有相同报头但有效负载不同的新消息时,带有缓存的拦截器也可以很好地工作,它被视为答复),但我不能使用这种情况。

还有更好的主意吗?

阿尔特姆·比兰(Artem Bilan)

更优雅的解决方案可以实现<request-handler-advice-chain>春天缓存建议

因此,您的解决方案可能是这样的:

<int-http:outbound-gateway>
   <int-http:request-handler-advice-chain>
        <cache:advice>
              <cache:caching cache="foo">
                    <cache:cacheable method="handle*Message" key="#a0.payload"/>
              </cache:caching>
        </cache:advice>
   </int-http:request-handler-advice-chain>
</int-http:outbound-gateway>

哪里handle*MessagehandleRequestMessage方法HttpRequestExecutingMessageHandler正是针对这种方法,Spring Integration运用了他的建议(例如RequestHandlerRetryAdvice)。

在这里,您应该配置一个cacheManagerbean,选择高速缓存名称并key为高速缓存条目确定一个上面的示例中#a0是一个Message来自handleRequestMessage参数对象因此,您可以针对消息属性(有效负载和标头)指定任何SpEL表达式。的结果handleRequestMessage将存储在缓存中。

当您为HTTP reqeust提供相同的参数时,结果将仅从缓存中返回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring集成应用程序和缓存

来自分类Dev

Android Studio 启动错误的活动,但当清除应用程序的数据和缓存时,应用程序正常启动

来自分类Dev

使用@Singleton和@Stateless加载和缓存应用程序范围的数据

来自分类Dev

Spring在Spring MVC应用程序中的集成

来自分类Dev

Spring集成-应用程序代码中的调用方法

来自分类Dev

集成基于Spring的Java应用程序和Clojure库

来自分类Dev

Swagger 2与Spring Boot应用程序集成

来自分类Dev

Spring Boot中多战应用程序的集成测试

来自分类Dev

无法将JMX与Spring应用程序集成

来自分类Dev

如何在GWT应用程序中集成Spring角色

来自分类Dev

Spring集成-应用程序始终在运行

来自分类Dev

Spring集成-应用程序启动时的运行流程

来自分类Dev

wso2 集成 Spring Boot 应用程序

来自分类Dev

Spring Boot + Thymeleaf应用程序中的缓存清除

来自分类Dev

在 Spring 应用程序中集成 angular 应用程序,JSP 页面 [TypeError]

来自分类Dev

代码/程序存储和缓存

来自分类Dev

错误的应用程序缓存

来自分类Dev

更新应用程序缓存

来自分类Dev

Mvc应用程序缓存

来自分类Dev

删除应用程序缓存

来自分类Dev

将Spring Boot与现有的Spring应用程序集成

来自分类Dev

如何在现有的spring-mvc应用程序中集成spring-integration?

来自分类Dev

Spring 4 WebSocket集成到Spring MVC应用程序中

来自分类Dev

将Node与Phonegap应用程序集成

来自分类Dev

Android应用程序中的Flickr集成

来自分类Dev

Paypal与Flask应用程序集成

来自分类Dev

Facebook与Android应用程序集成

来自分类Dev

Paypal集成到Android应用程序

来自分类Dev

与iPad集成表视图应用程序