前面几步已经基本搭起了一个可以开发的框架了。但是还不完整。比如事务管理就没有加上。这里补上。
由于我们在持久层用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的参考文档,对以上配置加以修改。
分享到:
相关推荐
Struts2+Spring3+Hibernate4+Maven+EasyUI整合视频教程源码
NULL 博文链接:https://3806850.iteye.com/blog/904711
Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频012,
Struts2+Spring3+Hibernate4+Maven+EasyUI+mysql +jar包 源代码 测试可运行 的 带mysql数据库 改自孙宇的实例 EasyUI 实现 日历 运行,请先注册 jar包在target\sshe-0.0.1-SNAPSHOT\WEB-INF\lib
maven整合spring+hibernate+struts2
Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频002,
Struts2+Spring3+Hibernate4+Maven+EasyUI 实现更删改查等功能,用到很多easyUI的知识
项目是由maven+struts2+hibernate3+spring+eclipse完成的,压缩包里还有数据库mysql脚本,希望能对你有帮助
Struts2+Spring3+Hibernate4+Maven+EasyUI+CXF 整合,包含对项目介绍的DOC文档
Struts1.2+Spring1.2+HIbernate3.1整合一个用户登录的例子,原以为这个很简单没有必要上传上去,但问我的人太多了,所以就发布上来了,我随后会在博客里做详细的介绍,请大家继续关注我的博客.
权限管理系统,Struts+Spring+Hibernate+Maven整合,分为6个模块:crm-ssh-parent,crm-ssh-common,crm-ssh-domain,crm-ssh-dao,crm-ssh-sercvice,crm-ssh-web;
Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...
这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...
Struts1+Spring3.0+Hibernate3.3 练习登录注册的例子,适合初学者
Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频007,Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频006
Maven项目ssh Struts2+hibernate+Spring+maven框架.zip
Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频008,
struts2+spring3+hibernate4+mybatis3整合
maven3.3.9+struts2.5.5+spring4.3.3+hibernate5.2.4框架搭建实例 ssh这么主流,但是在网上搜索的资料拿来用的时候经常出错或者是没有一个完整的搭建环境,这里给大家提供一个非常完整,而且基础的实例,本人是在...
一个小型maven管理的ssh框架开发的人员管理网站,能基本对与ssh框架有一个基本了解,内容也不多,框架条理都分好了,易于学习。配置文件都有注解。默认字符集为UTF-8,数据库直接按照bean创建就行,注解形式无法自动...