• OpenSessionInViewFilter的配置


    OpenSessionInViewFilter是用来处理懒加载异常的。
    懒加载异常的意思的就是:还用不到的东西,就先不加载,等需要的时候再来加载。
    所以懒加载对性能有一定的提升,但是,这也会出现一些问题,一般来说,事务开始的时候Session就被获取,事务结束的时候Session就会被关闭。所以懒加载会出现Session已关闭,却还是去调用Session,从而报Session为空的错误。
    据我所知道解决这个问题的方法有两个:一个就是关闭懒加载异常。(一般不推荐!因为关闭了,就不能使用懒加载的好处了)
    另一个方法就是把Session的关闭延后。(推荐使用)

    在使用第二种方法解决这个问题时,要先了解一下事务、Session等的调用过程:
    如:
    图像 1.png


    因为在显示层的时候要使用到懒加载属性,所以要让Session到显示层调用了懒加载之后在关闭。


    那么可以把Session的关闭交给Filter或Interceptor,因为很多程序都要用到这个功能,所以有人已经实现了这个功能。
    也就是:  org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    只要配置这个Filter就可以了。
    如下:
    1. <!-- 防止懒加载异常的过滤器 -->
    2. <filter>
    3. <filter-name>OpenSessionInViewFilter</filter-name>
    4. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    5. </filter>
    6. <filter-mapping>
    7. <filter-name>OpenSessionInViewFilter</filter-name>
    8. <url-pattern>*.action</url-pattern>
    9. </filter-mapping>
    不过要注意的一件事!
    就是这个OpenSessionInViewFilter  过滤器要配置在Struts配置之前。
    不然会无效!!







  • 相关阅读:
    编码和字符集
    【机器学习】模型泛化
    asp.net GridView控件的列属性
    asp.net截取指定长度的字符串内容
    asp.net 对数据库表增加,删除,编辑更新修改
    asp.net 链接数据库ADO.NET
    常用正则表达式 验证电子邮件网址邮政编码等
    ASP.NET获取文件的相关知识
    C#获取picturebox图片路径
    C# dataGridView根据数据调整列宽
  • 原文地址:https://www.cnblogs.com/JamKong/p/4555674.html
Copyright © 2020-2023  润新知