在Spring Integration中,处理程序和拦截器看起来基本上可以实现相同的功能。甚至有一些'duped'实现,例如MessageTransformingChannelInterceptor
和MessageTransformingHandler
,据我所知,它们提供了不同语义的相同功能。
是否有适当的时间,而不是另一个?如果这是一个偏好问题,那么我猜测会有某种惯例吗?
谢谢, 罗伊
答案 0 :(得分:3)
我的一般经验法则是谨慎使用拦截器;通常,仅用于“被动”的东西,如伐木,电话窃听等。
有些用户喜欢在拦截器中进行消息验证;特别是如果他们想要将相同的验证应用于多个通道,可能使用具有适当通道模式的全局拦截器。
转换拦截器是在框架的早期迭代(2008)中创建的,我们应该删除(至少)在引用中唯一提到它(在XML部分中)。
答案 1 :(得分:0)
拦截器用于实现交叉管理,日志记录,审计,请求前后操作和安全等跨领域问题。
/opt/local/bin
/opt/local/sbin
作为独占实施,而Controller
作为包含。
在Spring中,我们有以下不同类型的Handler接口:
HandlerInterceptor
类似于javax.servlet.Filter
的界面,它有助于身份验证,日志记录和审计,加密等等更多。Handler
使用可配置的处理程序映射将请求分派给处理程序。 DispatcherServlet
负责调用某些HandlerAdapter
选择的处理程序方法。