Spring MVC+Hibernate注解事务问题
以前,经常使用S2SH的框架,没怎么遇到过事务不提交的问题。当下,我们大多数用的都是spring的声明式事务管理。而今,因为项目需求要使用Spring MVC+Hibernate的框架,在搭建此框架的时候,遇到一个很奇怪的问题“可以查询数据,就不能保存或更新数据”。起初我怀疑是我按照Struts2的方式配置引起的,后来查阅资料,基本上排除了,因为不管是Struts2也好,Spring MVC也罢,Spring整合Hibernate的方式都是一样的。接下来,我又怀疑是我代码或Dao写得有问题,后来还是被我排除了,因为我把同样的代码考入到S2SH环境中,就没问题。接下来,我继续查阅资料,谷歌…ok,我终于是找到问题了,也找到解决问题的办法了。当我看到问题原因时,我真是哭笑不得,一个很小的问题,折腾我一天。下面是我对问题的总结:
框架采用:spring 3.1 + hibernate 3.6
spring mvc使用注解方式;service使用@service注解 事务使用@Transactional
事务配置使用:
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
在插入或更新数据时,无报错,但数据库中无结果,而查询正常。疑为事务未提交。问题分析spring mvc使用注解方式时需要使用Xml代码
<context:component-scan base-package="com.liutl.edudemo" >
<context:include-filter type="regex" expression=".web.*"/>
<context:include-filter type="regex" expression=".service.*"/>
<context:include-filter type="regex" expression=".dao.*"/>
</context:component-scan >
Spring MVC在服务启动时来扫描该包以及其子包下的@Controller注解的类,纳入spring管理,而与此同时spring 容器也使用了这种方式扫描包含@Service、@Components、@Required、@Autowired等注解用来管理bean和完成DI。
当Spring MVC在服务启动时来扫描该包以及其子包下的@Controller注解的类时,出现在spring mvc的配置文件中时,web 容器在扫描包含@Service或@Components的类并包含@Transaction是,此时@Transaction并为完成,导致事务未被注册。
问题解决
解决1. 将事务注解
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
放入到spring mvc servlet配置文件中,这时候服务启动时,事务也可以同时被加载进去。
参考文献:http://fengzhiyin.iteye.com/blog/714686
分享到:
相关推荐
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...
01. 采用后台及前台的 Spring + Spring mvc + Hibernate + Bootstrap 02. 后台全注解式的开发(除了必要的spring和hibernate的xml配置以外) 03. 后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04...
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip02
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发 03”中,我们将深入探讨Java企业级开发中的三大核心框架——Spring、Spring MVC和Hibernate的整合应用,尤其是利用注解进行的无XML配置。以下是这些...
在IT行业中,构建大型、模块化的Java应用时,通常会采用一些成熟的框架组合,例如Spring、Spring MVC和Hibernate。这些框架协同工作,可以提供强大的后端功能,包括依赖注入、模型-视图-控制器(MVC)架构以及对象...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而Spring、Spring MVC和Hibernate是Java领域中广泛使用的三大框架,它们各自负责不同的职责,共同构建了一个强大的开发环境。本篇文章将深入探讨如何利用这三大...
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip01
【标题】"Spring MVC + Spring + Hibernate 全注解整合开发视频教程 08" 提供了一个关于使用Java技术栈进行Web开发的课程,重点在于如何通过注解实现Spring MVC、Spring和Hibernate的深度整合。这个系列教程的第八...
在这个特定的项目中,"spring mvc + hibernate注解版测试增,删,改,查 简单xml配置应用"是一个典型的后端开发示例,它涵盖了使用Spring MVC和Hibernate来实现数据库操作的基本功能:新增(Create)、删除(Delete...
本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...
在本教程中,我们将探讨如何使用Spring MVC和Hibernate的全注解方式实现事务管理。 首先,Spring MVC通过Controller注解定义控制器,处理HTTP请求。在处理业务逻辑时,如果涉及到多个数据库操作,我们需要确保这些...
spring mvc + spring + hibernate 全注解整合开发视频教程 14.haozip02
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发 05”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring MVC、Spring和Hibernate的集成应用,特别是如何利用注解进行高效无XML配置的开发...
【标题】"Spring MVC + Spring + Hibernate 全注解整合开发视频教程 09" 提供了一次深入了解Java企业级应用开发的机会,特别是在使用Spring MVC、Spring和Hibernate这三大核心框架进行全注解配置的场景下。...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第十部分将聚焦于实际应用中的细节和优化,旨在帮助开发者构建高效、可维护的Java Web应用程序...
在本项目中,我们利用了Java技术栈中的四个核心组件:Spring MVC、Spring、Hibernate以及Bootstrap,构建了一个全面的图书管理系统。这个系统旨在提供高效、用户友好的图书管理功能,涵盖了从图书入库、检索到借阅、...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第13部分,将帮助开发者掌握如何在Java Web项目中高效利用这些技术,实现一个现代化、高效且可...