Spring框架(JavaEE开发进阶Ⅲ)—Spring中的编码事务

9人阅读 评论(0) 收藏 举报
分类:

一、主要内容

1、Spring中的编码事务

二、Spring中的编码事务

1、要在应用中更好控制事务边界,编码式事务是合适的选择
2、以myTwitter项目中信息服务类MessageService的saveMessage()作为事务方法的例子:
public void saveMessage(Message message) {
    messageDao.saveMessage(message);
}
1)添加事务的一种方式是在saveMessage()方法中直接通过编码,使用Spring的TransactionTemplate来添加事务性边界,TransactionTemplate使用回调机制:
public void saveMessage(final Message message) {
    txTemplate.execute(new TransactionCallback<Void>() {
        public void doInTransaction(TransactionStatus txStatus) {
            try {
                messageDao.saveMessage(message);
            } catch (RuntimeException e) {
                txStatus.setRollbackOnly();
                throw e;
            }
            return null;
        }
    });
}
3、为了使用TransactionTemplate,需要实现TransactionCallback接口,其中唯一方法doInTransaction()实现事务性代码
4、调用TransactionTemplate实例的execute()方法时,将会执行TransactionCallback实例中的代码,如果遇到问题,调用TransactionStatus对象的setRollbackOnly方法来回滚事务,否则odInTransaction()成功返回,事务提交
5、由于Spring事务管理基于TransactionSynchronizationManager进行工作,所以如果在回调方法中需要显示访问底层数据连接,必须通过资源获取工具得到线程绑定的数据连接
6、TransactionTemplate需要注入到MessageService中
<bean id="messageService" class="com.iotek.myTwitter.service.MessageService">
    ...
    <property name="transactionTemplate">
        <bean class="org.springframework.transaction.support.TransactionTemplate">
            <property name="transactionManager" ref="transactionManager"/>
        </bean>
    </property>
</bean>

查看评论

Spring框架

-
  • 1970年01月01日 08:00

Spring框架内容整理(四):Spring事务处理

Spring事务处理,TransactionManager,编程式事务,声明式事务
  • Scplove
  • Scplove
  • 2016-08-22 19:18:04
  • 6151

Spring框架(JavaEE开发进阶Ⅲ)—数据访问

Spring的数据访问一、主要内容1、Spring数据访问的异常体系2、数据访问模版化3、使用DAO支持类二、前言1、Spring对数据访问的支持同样遵循OO原则:针对接口编程2、DAO(数据访问对象...
  • csj50
  • csj50
  • 2018-03-09 00:24:34
  • 42

Spring事务管理一:Spring事务管理的优点

(翻译自spring-framework-reference.pdf 第四章 Data Access) 通常情况下,J2EE有2种事务管理方式:全局事务和本地事务,2种事务都比较明显的缺陷。 全局事务...
  • a19881029
  • a19881029
  • 2012-08-23 22:18:06
  • 13028

Java基础之《Servlet+JSP(JavaEE开发进阶Ⅰ)》--Servlet

一、Web简介1、http请求GET请求:请求获取由Request-URI所标识的资源POST请求:向指定Request-URI所标识的资源提交数据进行处理请求HEAD:请求获取由Request-UR...
  • csj50
  • csj50
  • 2018-02-24 00:43:02
  • 51

Spring事务与Java事务比较

  • 2012年03月23日 17:12
  • 54KB
  • 下载

Spring框架(JavaEE开发进阶Ⅲ)—在Spring中使用JDBC

一、主要内容1、应对失控的JDBC代码2、使用JDBC模板二、前言1、JDBC建立在SQL之上,能更好对数据访问性能进行调优2、JDBC允许用户使用数据库的所有特性3、JDBC能让我们在更低层次上处理...
  • csj50
  • csj50
  • 2018-03-22 22:46:14
  • 31

Spring框架(JavaEE开发进阶Ⅲ)—在Spring中集成Hibernate

一、主要内容1、Hibernate概览2、声明Hibernate的Session工厂3、构建不依赖于Spring的Hibernate代码二、前言1、应用程序越复杂,对持久化需求随之要求更高1)延迟加载...
  • csj50
  • csj50
  • 2018-03-31 21:32:17
  • 18

6.3 在Spring中的编码事务

例子: 在saveSpittle()方法中直接通过编码使用Spring的TransactionTemplate来添加事务性边界。 public void saveSpittle(final Spi...
  • u010819416
  • u010819416
  • 2015-03-24 22:48:56
  • 486

Spring框架(JavaEE开发进阶Ⅲ)—AOP

一、什么是面向切面编程0、AOP导言业务功能需求,需要正交的横切0.1、横切关注点被描述为多处影响应用的功能,可被模块化为特殊的类,称为切面(aspect)0.2、OO中继承和委托(引用)是重用通用功...
  • csj50
  • csj50
  • 2018-02-24 17:37:31
  • 43
    个人资料
    持之以恒
    等级:
    访问量: 20万+
    积分: 2843
    排名: 1万+
    最新评论