Spring Integration - 处理程序与拦截器

问题描述 投票:0回答:2

在 Spring Integration 中,处理程序和拦截器看起来基本上实现了相同的目标。甚至还有一些“受骗”的实现,例如

MessageTransformingChannelInterceptor
MessageTransformingHandler
,据我所知,它们提供了具有不同语义的相同功能。

是否存在一个时间合适而另一个时间不合适的情况?如果这是一个偏好问题,那么我猜会有某种约定?

谢谢, 罗伊

spring spring-integration
2个回答
6
投票

我的一般经验法则是谨慎使用拦截器;通常,仅适用于“被动”事物,例如日志记录、窃听等。

有些用户喜欢在拦截器中进行消息验证;特别是如果他们想对多个通道应用相同的验证,也许使用具有适当通道模式的全局拦截器。

转换拦截器是在框架的早期迭代(2008 年)中创建的,我们可能应该删除(至少)参考文献(XML 部分)中唯一提及的内容。


2
投票

处理程序

  • Handler 的意思是处理某些事情的类
  • 处理程序通常是 Web 应用程序中的一个组件,用于处理传入的 HTTP 请求并使用 Servlet API 生成相应的响应。
  • 例如,在 Spring 框架中,
    HandlerMapping
    用于根据 URL 模式或请求方法将请求映射到特定控制器或处理程序。
  • Handler 负责处理(即执行核心功能)请求并生成响应,而 Filter 负责修改或检查请求或响应

拦截器

  • Spring Security 中的拦截器与过滤器类似,但它们在请求处理管道中的不同点执行。拦截器在请求被分派到控制器之后、调用控制器方法之前执行。
  • 拦截器共享服务器端和客户端的通用 API。
  • 拦截器通常用于实现横切关注点,例如事务管理、安全性或日志记录。
  • 拦截器是Spring的AOP框架的一部分,用于拦截对Spring bean的方法调用。它们允许您在方法调用执行之前或之后添加行为。拦截器可以使用注释或 XML 配置来配置。拦截器用于拦截对 Spring bean 的方法调用。
© www.soinside.com 2019 - 2024. All rights reserved.