SpringBoot事务注解@Transactional
时间: 2023-12-05 09:40:57 浏览: 95
Bee事务注解@Tran使用实例工程
@Transactional是Spring框架中用于配置事务的注解之一,它可以被应用于类或方法上。当被应用于类上时,该类中的所有公共方法都将被配置为支持事务。当被应用于方法上时,该方法将被配置为支持事务。@Transactional注解提供了多个属性,可以用于配置事务的各个方面,例如隔离级别、传播行为、只读状态等。以下是一个使用@Transactional注解配置事务的例子:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, readOnly = false)
public void addUser(User user) {
userDao.addUser(user);
}
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, readOnly = false)
public void updateUser(User user) {
userDao.updateUser(user);
}
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, readOnly = false)
public void deleteUser(int userId) {
userDao.deleteUser(userId);
}
@Transactional(propagation = Propagation.SUPPORTS, isolation = Isolation.DEFAULT, readOnly = true)
public User getUserById(int userId) {
return userDao.getUserById(userId);
}
@Transactional(propagation = Propagation.SUPPORTS, isolation = Isolation.DEFAULT, readOnly = true)
public List<User> getAllUsers() {
return userDao.getAllUsers();
}
}
```
在上面的例子中,@Transactional注解被应用于UserServiceImpl类中的所有公共方法上。其中,propagation属性指定了事务的传播行为,isolation属性指定了事务的隔离级别,readOnly属性指定了事务是否只读。在这个例子中,事务的传播行为被配置为REQUIRED,表示如果当前没有事务,则创建一个新的事务;如果当前已经存在事务,则加入该事务。事务的隔离级别被配置为DEFAULT,表示使用数据库默认的隔离级别。事务的只读状态被配置为false,表示该事务可以读取和修改数据。
阅读全文