`
ll_feng
  • 浏览: 389925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用maven整合struts+spring+hibernate之四 添加事务管理

阅读更多
前面几步已经基本搭起了一个可以开发的框架了。但是还不完整。比如事务管理就没有加上。这里补上。
由于我们在持久层用hibernate来实现。所有的CRUD都是hibernate的API.所以事务就可以委托给hibernate来做。那么我们需要在spring的配置文件里加上以下代码:
<!--事务管理bean-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
      <ref bean="sessionFactory"/>
  </property>
</bean>

<!-- 配置事务通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
    <tx:method name="save*" propagation="REQUIRED" read-only="false"/>
    <tx:method name="get*" propagation="REQUIRED" read-only="true"/>
    <tx:method name="*" read-only="true"/>
  </tx:attributes>
</tx:advice>

<!--添加事务-->	
<aop:config>
  <!--切入点-->
  <aop:pointcut id="txPointCut" expression="execution(* net.apex.ssh.common.service.*.*(..))"/>
  <!--通知器-->
  <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>


这样,应用的事务就添加完成了。说明一下,spring2的声明式事务管理可以用注解来做,也可以用基于schema的xml配置来做。本例即后一种方式。

那么这样就完了吗?测试一下就知道了。
可以在service实现类里抛出异常。看看能否能回滚。比如:
public void saveUser(User user) {
    userDao.save(user);
		
    throw new RuntimeException("测试事务!............");
}


我在调用userDao.saveUser(user)对user对象进行持久化之后,马上手动抛出异常。如果事务配置起作用了,就会进行回滚,也就是之前保存了数据并不会提交,否则数据就会保存到数据库。如果一切正常,应该就配置完成了。

这里要注意,spring的事务管理并不是所有的异常都会导致回滚。实际上默认是运行时异常及它的子类异常才会被回滚。不过这些是可以配置的。可以参考spring的参考文档,对以上配置加以修改。
分享到:
评论

相关推荐

    用maven整合struts+spring+hibernate

    "用maven整合struts+spring+hibernate"这个主题,就是关于如何将这三大核心框架——Struts、Spring和Hibernate——集成到一个项目中的实践教程。Struts提供了MVC(Model-View-Controller)架构,Spring是全面的后端...

    maven(springmvc+spring+hibernate)

    在SSH整合中,Spring管理Struts和Hibernate,提供了统一的事务管理,使得业务逻辑处理更为一致。同时,Spring还能够与Struts进行深度集成,比如通过Spring的ModelAndView对象替代Struts的ActionForward,使得模型和...

    Struts2+Spring3+Hibernate4+Maven+EasyUI+mysql 源代码整合入门

    Struts2+Spring3+Hibernate4+Maven+EasyUI+mysql +jar包 源代码 测试可运行 的 带mysql数据库 改自孙宇的实例 EasyUI 实现 日历 运行,请先注册 jar包在target\sshe-0.0.1-SNAPSHOT\WEB-INF\lib

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    2. **创建Maven项目**:利用IDE创建Maven Web项目,添加Struts2、Spring3、Hibernate4和EasyUI的依赖。 3. **配置项目**:配置web.xml,定义过滤器和监听器,初始化Spring和Struts2。 4. **建立数据库连接**:配置...

    maven整合spring+hibernate+struts2

    本项目“maven整合spring+hibernate+struts2”就是一个典型的Java Web开发模式,它利用Maven作为项目管理工具,Spring作为核心框架,Hibernate作为持久层解决方案,Struts2作为表现层控制器。以下将详细阐述这些技术...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频002

    同时,Spring的事务管理、数据访问集成(如JDBC、Hibernate)以及Spring MVC模块与Struts2结合,能进一步优化应用架构。 Hibernate4作为持久层框架,简化了数据库操作。它提供了一种对象关系映射(ORM)解决方案,...

    ssi(struts+spring+maven+mybatis)整合

    **SSI(Struts + Spring + Maven + MyBatis)整合详解** 在现代Java Web开发中,集成多种框架来实现高效、灵活的应用程序架构是常见的做法。`SSI`整合,即Struts、Spring、Maven和MyBatis的组合,旨在提供一个强大...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    1. 配置环境:确保项目中引入了Struts2、Spring和Hibernate的相应库,这通常通过Maven或Gradle等构建工具完成。 2. 配置Spring:创建Spring的配置文件(如`applicationContext.xml`),定义Bean并设置其依赖。例如...

    Struts2+Spring3+Hibernate4+Maven+EasyUI

    Struts2负责请求分发和业务逻辑,Spring3处理依赖管理和事务控制,Hibernate4管理数据库操作,Maven确保项目的构建过程,而EasyUI则提供了用户友好的前端展示。这样的组合在大型企业级应用中非常常见,因为它提供了...

    idea14+maven+struts+spring+mybatis框架

    标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH(Struts、Spring、Hibernate)经典企业级开发框架,并融入MyBatis持久层框架的项目。...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合视频教程源码

    开发者可以学习到如何配置这些框架,以及如何在Struts2中使用Spring管理Bean,通过Hibernate进行数据持久化,使用Maven进行项目构建,以及利用EasyUI创建前端界面。通过实践,开发者将更好地理解这些技术的工作原理...

    eclipse搭建(Struts2.5+Spring5.0+hibernate5.2)整合框架Demo实例

    本教程将详细介绍如何使用Eclipse IDE搭建一个基于Struts2.5、Spring5.0和Hibernate5.2的整合框架,提供一个可运行的Demo实例。这个组合是Java企业级开发中常见的技术栈,它们各自负责不同的职责:Struts2作为前端...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    Struts1.2+Spring1.2+HIbernate3.1整合示例代码

    Struts1.2+Spring1.2+HIbernate3.1整合一个用户登录的例子,原以为这个很简单没有必要上传上去,但问我的人太多了,所以就发布上来了,我随后会在博客里做详细的介绍,请大家继续关注我的博客.

    权限管理系统Struts+Spring+Hibernate+Maven整合

    权限管理系统,Struts+Spring+Hibernate+Maven整合,分为6个模块:crm-ssh-parent,crm-ssh-common,crm-ssh-domain,crm-ssh-dao,crm-ssh-sercvice,crm-ssh-web;

    Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解)

    Struts2.3.28、Spring4.1.6和Hibernate4.3.8是三个经典的Java EE框架,它们的整合是企业级应用开发中常见的技术栈,通常被称为S2SH。在这个版本的整合中,注解的使用极大地简化了配置过程,使得开发更加高效。以下是...

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行源码

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...

    maven3.0+struts+spring+hibernate

    这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...

    maven+struts2+hibernate3+spring+eclipse项目

    该项目是一个经典的Java Web开发组合,使用了Maven作为构建工具,Struts2作为表现层框架,Hibernate3作为持久层框架,Spring3作为依赖注入和事务管理框架,且基于Eclipse IDE进行开发。以下是对这些技术栈的详细说明...

Global site tag (gtag.js) - Google Analytics