转自:https://www.cnblogs.com/blogonfly/articles/3991782.html
参考:
OpenSessionInViewFilter作用及配置:http://www.yybean.com/opensessioninviewfilter-role-and-configuration http://blog.csdn.net/fooe84/article/details/680449 主要涉及类: org.springframework.orm.hibernate3.support.OpenSessionInViewFilter org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor 一、作用 说明一下Open Session in View的作用,就是允许在每次的整个request的过程中使用同一个hibernate session,可以在这个request任何时期lazy loading数据。 如果是singleSession=false的话,就不会在每次的整个request的过程中使用同一个hibernate session,而是每个数据访问都会产生各自的seesion,等于没有Open Session in View. OpenSessionInViewFilter默认是不会对session 进行flush的,并且flush mode 是 never spring的OpenSessionInViewFilter过滤器,主要是为了实现Hibernate的延迟加载功能,基于一个请求一个hibernate session的原则。 二、配置 它有两种配置方式OpenSessionInViewInterceptor和OpenSessionInViewFilter(具体参看SpringSide),功能相同,只是一个在web.xml配置,另一个在application.xml配置而已。 Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用,如在View层里PO也可以lazy loading数据,如 ${ company.employees }。当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。 1,web.xml配置OpenSessionInViewFilter2,applicationContext.xml配置openSessionInViewInterceptor