参考:
https://www.cnblogs.com/gyadmin/p/8004147.html
https://blog.csdn.net/fredworks/article/details/83166387
Q:OpenSessionInViewInterceptor或OpenSessionInViewFilter应该使用哪一个?
我很难决定使用哪个“Open Session In View”:使用 Spring MVC的拦截器配置OpenSessionInViewInterceptor或在web.xml的过滤器中配置OpenSessionInViewFilter?根据我的研究,它们几乎完全相同,但我试图理解每种类型的差异和用法.
两者之间最大的区别在于那些不能在web.xml中使用过滤器的人(比如servlet 2.2及更早版本),他们唯一的选择就是使用OpenSessionInViewInterceptor.不知何故,我倾向于拦截器只是因为我必须为我的项目创建一个自定义拦截器,所以我想在Spring MVC配置文件中对所有这些“过滤器”进行分组,而不是在web.xml和我的自定义中使用OpenSessionInViewFilter Spring MVC配置文件中的拦截器.
A:
如你所说,这两者或多或少是等价的. Spring为他们提供了两者,以便您可以选择最适合您现有应用程序的那个.
如果您使用Spring MVC,那么使用拦截器是有意义的,因为它更容易配置并更好地与Spring MVC集成.
但是,如果您不使用Spring MVC,并且仅在业务逻辑级别使用Spring,那么拦截器实际上不是一个选项,并且过滤器变得更合适.因为过滤器不是由Spring管理的,所以它们很难配置为与Spring集成,但这是权衡.