ssh框架整合时的延迟加载问题(no session问题)的分析以及解决方案

简介: ssh框架整合时的延迟加载问题(no session问题)的分析以及解决方案

当我们整合完三大框架,并采用hibernate的延迟加载方案时,会出现如下的异常:

微信图片_20221110160935.png

现在对这个异常进行分析,如下图所示(模拟通过id查询用户信息的过程):

微信图片_20221110161000.png

上图分析了为什么会出现no session的问题,现在对这个问题进行解决,解决的方法主要由有两种:


1. 手动将延迟加载初始化 Hibernate.initialize(延迟对象),这种方式不推荐使用


2 . 在配置文件(web.xml)中配置openSessionInViewFilter

        <filter>
    <filter-name>openSessionInViewFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
  </filter>    
  <filter-mapping>
    <filter-name>openSessionInViewFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

这段配置的原理就是将session的关闭操作,不再是在service层完成,而是在web层完成

需要注意的是,这段配置一定要配置在struts2框架入口的上方,如下:

  <!-- 解决延迟加载引发的问题 -->
    <filter>
      <filter-name>openSessionInViewFilter</filter-name>
      <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>openSessionInViewFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  <!-- struts2的程序入口 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
相关文章
|
Java 关系型数据库 MySQL
JSP SSH公车拍卖系统myeclipse开发mysql数据库bs框架java编程网结构
JSP SSH公车拍卖系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
76 0
|
1月前
|
Java 数据库连接 数据库
让星星⭐月亮告诉你,SSH框架01、Spring概述
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。它通过IoC(控制反转)和DI(依赖注入)降低组件间的耦合度,支持AOP(面向切面编程),简化事务管理和数据库操作,并能与多种第三方框架无缝集成,提供灵活的Web层支持,是开发高性能应用的理想选择。
36 1
|
5月前
|
网络安全 数据安全/隐私保护
分布式系统详解--框架(Hadoop-Ssh免密登陆配置)
分布式系统详解--框架(Hadoop-Ssh免密登陆配置)
55 0
|
6月前
|
Java 数据库连接 网络安全
SSH 组合框架模式小知识分享
【5月更文挑战第4天】SSH 组合框架模式小知识分享
42 0
|
6月前
|
前端开发 Java 网络安全
基于SSH框架甜品商城管理系统【源码+数据库】
基于SSH框架甜品商城管理系统【源码+数据库】
|
前端开发 Java 关系型数据库
JSP仓库进销存系统ssh框架mysql数据库myeclipse开发mvc结构java
JSP 仓库进销存系统(struts2+hibernate) 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
54 0
|
Java 网络安全 Spring
SSH框架学习中遇到的问题
SSH框架学习中遇到的问题
54 0
|
Java 应用服务中间件 网络安全
【ssh系列一】——框架搭建
建立项目(SpringMVC+Spring+hibernate的maven项目)
|
设计模式 开发框架 缓存
SSH框架简介篇
SSH框架简介篇
406 0
|
网络协议 算法 数据挖掘
抓包分析ssh远程主机为何变慢了?
在使用spug自动化部署程序的时候,会使用ssh协议远程执行脚本,但是ssh那一步会耗时比较旧,网上的解决方案五花八门. 问题可能可以解决,但是背后原理并不清楚,借此机会抓包将此问题彻底消化.
147 0