【spring】事务管理之编程式事务

     首先说一下编程式事务和声明式事务的区别:


编程式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作和事务规则进行解耦。

编程式事务侵入业务代码中,但是提供了更加详细的事务管理,而声明式事务由于基于AOP,所以能够起到事务管理的作用,又不影响业务代码的具体实现。


编程式事务:


 1、TransactionTemplate

他是线程安全的,因为多个业务类中共享TransactionTemplate实例进行事务管理。TransactionTemplate拥有多个设置事务属性的方法。

setTransactionManager 设置事务管理器,也是通过AOP主动注入的

execute 在TransactionCallBack回调接口中定义需要以事务方法组织的数据访问逻辑。


2、PlatformTransactionManager   该接口一共有三个方法。


请见下面的代码:


package com.smart.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
import com.smart.dao.ForumDao;
import com.smart.domain.Forum;
@Service
public class ForumService1 {
	public ForumDao forumDao;
	public TransactionTemplate template;
	public void addForum(final Forum forum) {
		
		template.execute(new TransactionCallbackWithoutResult() {
			protected void doInTransactionWithoutResult(TransactionStatus status) {
				forumDao.addForum(forum);
			}
		});

	}

	@Autowired
	public void setForumDao(ForumDao forumDao) {
		this.forumDao = forumDao;
	}
	@Autowired
	public void setTemplate(TransactionTemplate template) {
		this.template = template;
	}

	
	
}

       接下来我们说声明式编程。

         


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值