`

循环调用spring的dao,数个过后无响应

阅读更多
    最近遇到这么一个问题:前台按钮发送AJax请求到后台,后台是SSH框架。每点击一下按钮就发送一次请求。 点击数次(7次)过后,页面无ajax响应。 在排除前台因素之后,找
到后台代码。写一个Test类。
public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    TestDao testDao = (TestDao)context.getBean("testDaoImpl");
        for (int i = 0; i < 10; i++) {
        TestDao testdao = (TestDao)context.getBean("testDaoImpl");
        List<Test> test = testdao.getTestsByVehicleType(1);
        System.out.println(i);
   }
控制台输出到7也停止了。
     网上也有个别帖子求助说"spring 调用bean次数的问题"。
    其实罪魁祸首是在DAO注入sessionFactory后,在DAO方法里面sessionFactory.openSession()
     虽然spring声明式的事务会自动帮你commit,但是openSession()产生的session并不会由于commit而自动关闭,而你多次打开新的session,结果session过多造成这个假死的现象。
     我的解决办法是DAO方法里改为sessionFactory.getCurrentSession()。该方法产生的session会在commit的时候自动close()这点我们在hibernate的时候已经学过了;或者使用HibernateTemplate的方法。
     不过在假如不是在B/S的情况下,即在Main测试getCurrentSession()是不成功的。 因为SessionFactory是注入进来的,getCurrentSession()不在事务范围之内。
分享到:
评论

相关推荐

    Spring4.0.2Hibernate4.3Freemarker2.3.20.zip.zip

    标题中的"Spring4.0.2Hibernate4.3Freemarker2.3.20.zip.zip"表明这个压缩包包含了三个关键的Java开发框架:Spring 4.0.2、Hibernate 4.3和Freemarker 2.3.20。这三者都是Java Web开发中的重要组件,下面将详细解释...

    spring mvc﹨hibernate﹨freemarker开源项目源码下载.zip

    Spring MVC的核心组件包括DispatcherServlet、Controller、ViewResolver和ModelAndView等,它们协同工作,使得开发者能够灵活地处理请求和响应。 **Hibernate** 是一个强大的ORM框架,它简化了Java应用程序与数据库...

    SpringFramework常见知识点.md

    Spring 是一个轻量级的、开源的 Java 应用程序开发框架。它的核心功能主要包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP)、模块化、可插拔、非侵入式的组件模型等,...

    springmvc+spring+Hibernate商品列表展示修改

    1. **Spring MVC**:Spring MVC是Spring框架的一个模块,主要用于处理Web应用中的请求和响应。它提供了模型-视图-控制器(MVC)架构模式,使得业务逻辑与表现层分离,提高了代码的可维护性和可测试性。在本项目中,...

    基于Springboot开发的实验室信息管理系统后端说明资源来源网络以及部分开源社区、仅供参考与学习、项目不可商用、一切后果

    本篇将详细讲解基于Spring Boot 开发的实验室信息管理系统后端的核心概念和技术,旨在提供一个学习与参考的平台,而非用于商业用途。 一、Spring Boot 概述 Spring Boot 是由Pivotal团队提供的全新框架,它简化了...

    springmvc mybatis freemarker

    Spring MVC、MyBatis 和 FreeMarker 是三个在Java Web开发中广泛应用的技术框架,它们共同构建了一个高效、灵活的Web应用程序架构。以下是对这三个技术的详细解释: **Spring MVC** Spring MVC是Spring框架的一个...

    java面试题

    4:Spring DAO:打开关闭数据库连接 5:Spring WEB:为基于WEB服务的应用程序提供上下文服务 6:Spring Context:向Spring框架提供上下文信息 7:Spring MVC:分离模型、视图、控制器、以便更容易定制 折构函数...

    ssm+mysql+Redis实现简易的高并发模拟

    首先,**Spring框架** 是整个应用的基础,它提供了一个统一的依赖注入容器,可以管理各种组件(如DAO、Service等),并支持AOP(面向切面编程)来处理跨切面的关注点,如日志、事务管理等。Spring MVC是Spring框架的...

    Java面试框架高频问题2019

    **问题九:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?** - Dao接口通过`@Mapper`注解与映射文件关联。 - 方法不能重载,...

    javaweb网上购物商城

    【JavaWeb网上购物商城】项目是一个使用Eclipse开发工具,基于MVC(Model-View-Controller)设计模式构建的电子商务应用程序。在这个项目中,我们将会深入探讨JavaWeb开发中的核心技术和概念。 首先,MVC模式是...

    GDGDSGDFGDFG

    Spring 是一个轻量级的 Java 开发框架,提供了一整套企业级应用解决方案。Spring 框架的核心功能包括依赖注入、面向切面编程、事务管理等。 ### 16. Spring IOC (Inversion of Control) Spring 的 IOC 容器是其...

    34个经典javaweb项目实例(含源码),可用于毕业设计以及学习

    通过实例,可以学习如何使用fmt、sql、fn、c等标签来处理国际化、数据库操作、函数调用和条件循环。 4. **MVC模式**:许多实例可能采用了Model-View-Controller(MVC)架构,这是一种将业务逻辑、数据和用户界面...

    springmvc+mybatis项目样例

    SpringMVC 是 Spring 框架的一部分,它为开发者提供了一种强大的方式来组织和控制 Web 应用的请求和响应流程。MyBatis 是一个轻量级的持久层框架,它简化了 SQL 查询和结果映射,使得数据库操作更加便捷。 **...

    JAVA音像店租赁管理系统的设计与实现(源代码+论文).zip

    在本系统中,Servlet接收请求,调用业务逻辑,JSP负责生成响应。 7. **JSTL(JavaServer Pages Standard Tag Library)**: JSTL简化了JSP页面的编程,提供了一系列预定义的标签,用于处理常见任务如循环、条件判断...

    基于Servlet+Thymeleaf+Mybatis的图书管理系统.zip

    开发者可以在XML配置文件或注解中定义SQL映射,然后在Java代码中调用Mybatis提供的API执行这些SQL,实现对图书信息、用户信息等数据的增删改查操作。Mybatis的优势在于灵活性高,可以进行复杂的SQL操作,并且能够...

    mybatis第二天课堂笔记

    - **foreach 循环**:循环遍历集合或数组。 - **SQL 片段**:重用 SQL 代码块。 #### 六、高级映射案例 - **一对一查询**:基于关联查询的结果,将数据映射到 POJO。 - **一对多查询**:将多个关联查询的结果映射...

    jsp后台管理系统sssss

    - **MVC模式**:模型(Model)负责业务逻辑,视图(View)负责展示,控制器(Controller)处理请求并调用模型更新视图。 - **数据访问层(DAO)**:处理数据库操作,与数据库进行交互。 - **业务逻辑层(Service...

    DVD管理系统项目

    1. **基础语法**:包括数据类型、变量、运算符、流程控制(如if-else,switch,for,while循环)以及方法定义和调用。 2. **类与对象**:面向对象编程是Java的核心,涉及到类的定义、对象的创建、封装、继承、多态...

    Java资源 Javaweb阶段知识实践

    4. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)**:EL简化了数据访问,而JSTL提供了一系列标准标签,如`&lt;c:forEach&gt;`循环、`&lt;c:if&gt;`条件判断,提高了代码可读性。 5. **MVC...

Global site tag (gtag.js) - Google Analytics