zoukankan      html  css  js  c++  java
  • Web程序中的懒加载异常说明及解决方案

    所谓懒加载(lazy)就是延时加载,延迟加载。
    什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。
    至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,
    因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,
    我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。懒加载的异常有很多种,你指的是不是session已经关闭的异常?因为那个初学者最容易遇到
    情况是当你加载出一个一对多关系的一这端的对象,然后在出了事务之后的地方,比如页面上,还想再获取多端对象里面的除了id以外的属性的时候,就会跑出这个异常。
    我举个例子,你有一个 Grade 对象关联了 很多 Student 对象,并且用的是懒加载
    你在service里面通过数据库查询获得了一个 Grade对象,这个对象里面有一个Set<Student> students 集合,但是你并没有对这个对象做进一步的处理(比如 intialize之类的操作让懒加载的代理对象真正去实例化)
    然后你到了页面的展示的时候,去遍历 students 这个集合,并且你试图在页面上显示每个 student 的 name 属性(这个属性不是studentId) 这个时候就会抛出session已经关闭的异常

    在SSH框架中:

    可直接
    可以使用OpenSessionInViewFilter
    在配置文件中配置
    1 <filter-name>opensession</filter-name>   
    2         <filter-class>       org.springframework.orm.hibernate3.support.OpenSessionInViewFilter   
    3       </filter-class>   
    4 <filter-mapping>   
    5      <filter-name>opensession</filter-name>   
    6    <url-pattern>*.action</url-pattern> 
    7 </filter-mapping> 
    
    
    
    
     
  • 相关阅读:
    hdu 5444 Elven Postman 二叉树
    tensorflow2.x模型保存问题
    【NVIDIA】Win10 + CUDA10 + cuDNN 安装教程(转载)和遇到的坑
    windows下 为不同虚拟环境配置不同的cuda
    多线程
    socket编程
    引用类型和值类型
    记录报错
    github下载慢问题
    LabelImg的安装出现No module named 'libs.resources'错误
  • 原文地址:https://www.cnblogs.com/oumyye/p/4193273.html
Copyright © 2011-2022 走看看