使用哪一个:OpenSessionInViewInterceptor或OpenSessionInViewFilter?


问题内容

我很难决定要使用哪个“ View Open Session”:使用Spring
MVC的拦截器配置OpenSessionInViewInterceptor还是在web.xml的过滤器中配置OpenSessionInViewFilter?根据我的研究,它们几乎可以做同样的事情,但是我试图了解每种类型的区别和用法。

两者之间的最大区别是,对于无法在web.xml中使用过滤器的人(例如Servlet
2.2及更早版本),他们唯一的选择是使用OpenSessionInViewInterceptor。不知何故,我之所以倾向于拦截器,是因为我必须为我的项目创建一个自定义拦截器,所以我考虑将所有这些“过滤器”分组在Spring
MVC配置文件中,而不是在web.xml和我的自定义中包含OpenSessionInViewFilter Spring
MVC配置文件中的拦截器。这实际上是决定使用哪种方法的me脚方法,而我的好奇心使我在这里丧命。

谁能分享您对此的想法?你们使用哪一个?

谢谢。


问题答案:

正如您所说,两者大致相同。Spring为他们提供了两者,因此您可以选择最适合您现有应用程序的一种。

如果使用Spring MVC,则使用拦截器是有意义的,因为它更易于配置,并且可以与Spring MVC更好地集成。

但是,如果您不使用Spring
MVC,而仅在业务逻辑级别使用Spring,那么拦截器并不是真正的选择,并且过滤器变得更合适。因为过滤器不是由Spring管理的,所以它们很难配置为与Spring集成,但这是一个折衷方案。