Spring框架之@Transactional注解用法(三)之timeout属性的使用

1、业务逻辑层代码@Servicepublic class UserServiceImpl implements UserService{ // 加载mapper @Autowired private UserMapper usermapper; @Transactional(propagation=Propagation.REQUIRED,timeout=5) // 启用事...
摘要由CSDN通过智能技术生成

1、业务逻辑层代码

@Service
public class UserServiceImpl implements UserService{
	
	// 加载mapper
	@Autowired
	private UserMapper usermapper;

	@Transactional(propagation=Propagation.REQUIRED,timeout=5) // 启用事务管理
	public void myTransaction(User addUser, User updateuser) {
		System.out.println("---- UserServiceImpl  myTransaction方法开始 ");
		usermapper.add(addUser);
		try {
			Thread.sleep(7000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		usermapper.update(updateuser);
		
		System.out.println("---- UserServiceImpl  myTransaction方法结束 ");
	}

}

说明:

       @Transactional注解的tiemout属性表示设置事务超时时间。

       以上代码中 ,@Transactional(propagation=Propagation.REQUIRED,timeout=5) 。

       表示允许事务执行的时间是5秒,而业务方法myTransaction中,代码的执行时间一定大于5秒的。

 2、测试代码


                
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架中,@Transactional注解用于声明一个方法或类是一个事务方法。它可以被应用在方法级别或类级别,并且具有以下使用方法: 1. 方法级别的@Transactional注解: - 在单个方法上使用@Transactional注解,表示该方法是一个事务方法。 - 当方法被调用时,如果当前没有活动的事务,则会启动一个新的事务。如果已经存在一个活动的事务,则该方法将在该事务的上下文中运行。 - 如果方法成功执行并正常返回,事务将被提交。如果方法抛出异常,则事务将被回滚。 2. 类级别的@Transactional注解: - 在类级别上使用@Transactional注解,表示该类中的所有公共方法都是事务方法。 - 类级别的注解可以被方法级别的注解覆盖,即如果一个方法上有@Transactional注解,则该方法会覆盖类级别的注解。 3. 设置事务属性: - @Transactional注解还可以使用一些属性来配置事务的行为。例如,可以使用propagation属性指定事务的传播行为,默认值为REQUIRED。还可以使用isolation属性指定事务的隔离级别,默认值为DEFAULT。 - 其他可用的属性还包括timeout(指定事务超时时间),readOnly(指定事务是否为只读模式)等。 示例代码: ```java @Service public class MyService { @Transactional public void performTransaction() { // 在这里执行数据库操作 } @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED) public void performAnotherTransaction() { // 在这里执行数据库操作 } } ``` 在上述示例中,`performTransaction`方法和`performAnotherTransaction`方法都被声明为事务方法。其中,`performTransaction`方法使用默认的事务属性,而`performAnotherTransaction`方法设置了传播行为为REQUIRES_NEW,隔离级别为READ_COMMITTED。这些方法中的数据库操作将在事务的上下文中执行,并根据事务的提交或回滚来保证数据的一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值