transactional注解使用方法
时间: 2023-09-02 10:11:36 浏览: 86
@Transactional注解是Spring框架中用于控制事务的注解。使用@Transactional注解可以将一个方法或类声明为一个事务性方法或类,当这个方法或类被调用时,Spring框架会自动启动一个事务,并在方法或类执行结束后,根据执行结果提交或回滚事务。
使用@Transactional注解非常简单,只需要在方法或类的定义上添加该注解即可。例如:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Transactional
@Override
public void addUser(User user) {
userDao.addUser(user);
}
@Transactional
@Override
public void updateUser(User user) {
userDao.updateUser(user);
}
@Transactional
@Override
public void deleteUser(int userId) {
userDao.deleteUser(userId);
}
@Transactional(readOnly = true)
@Override
public User getUser(int userId) {
return userDao.getUser(userId);
}
}
```
在上面的例子中,我们在UserServiceImpl类的每个方法上都添加了@Transactional注解。其中,addUser、updateUser和deleteUser方法的注解没有指定任何参数,因此它们的事务行为都是默认的,即如果方法执行出现异常,则回滚事务,否则提交事务。而getUser方法的注解指定了readOnly参数为true,表示该方法只读,不需要启动事务。
需要注意的是,@Transactional注解只能应用在public方法上。如果在private或protected方法上使用该注解,Spring框架将会忽略该注解。此外,如果在同一个类中的一个方法调用另一个方法,被调用的方法也需要添加@Transactional注解,否则事务将不会生效。
阅读全文