Spring集成-处理程序与拦截器

Spring集成-处理程序与拦截器,spring,spring-integration,Spring,Spring Integration,在Spring集成中,处理程序和拦截器看起来基本上实现了相同的功能。甚至还有一些“复制”实现,如MessageTransformingChannelInterceptor和MessageTransformingHandler,据我所知,它们提供了相同的功能和不同的语义 是否有一个时间是适当的而不是另一个?如果这是一个偏好的问题,那么我猜会有某种惯例 谢谢, 罗伊我的一般经验法则是谨慎使用拦截器;通常,仅适用于“被动”的情况,如日志记录、电线抽头等 一些用户喜欢在拦截器中进行消息验证;特别是如果他

在Spring集成中,处理程序和拦截器看起来基本上实现了相同的功能。甚至还有一些“复制”实现,如
MessageTransformingChannelInterceptor
MessageTransformingHandler
,据我所知,它们提供了相同的功能和不同的语义

是否有一个时间是适当的而不是另一个?如果这是一个偏好的问题,那么我猜会有某种惯例

谢谢,
罗伊

我的一般经验法则是谨慎使用拦截器;通常,仅适用于“被动”的情况,如日志记录、电线抽头等

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

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

Handler意味着处理某些事情的类。
并且处理程序是控制器的包含的实现,其中控制器是一个独占的实现

在Spring中,我们有以下不同类型的处理程序接口:

  • :这个拦截器基本上类似于Servlet过滤器,在SpringMVC框架中,我们有类似的接口,它有助于身份验证、日志记录和审核、加密等
  • :此接口用于将HTTP客户端请求映射到处理程序,即控制器。
    DispatcherServlet
    使用可配置的处理程序映射将请求分派给处理程序
  • :strategy接口
    HandlerAdapter
    的作用是调用一些
    HandlerMapping
    选择的处理程序方法
  • SpringAOP充当方法拦截器

为服务器和客户端共享一个公共API。例如,如果您需要对客户端请求的实体体进行编码,那么您可以实现一个拦截器来为您完成这项工作。

处理程序和拦截器是不同的。有一个拦截器提供了与现有处理程序大致相同的功能这一事实并不重要。处理程序是一个端点(如服务激活器、网关等),而拦截器用于将通用行为应用于通道(日志记录、安全性或有时转换)。