@Transactional 这个注解怎样用
时间: 2023-10-13 11:25:58 浏览: 73
@Transactional Spring 框架中的一个注解,用于管理事务。在使用@Transactional 注解时,可以将其添加在类或方法上,并指定相应的事务传播行为和隔离级别。
@Transactional 注解可以用在 Service 层的方法上,它会开启一个事务,当方法执行完毕后,如果没有发生异常,则事务会自动提交,如果发生异常,则事务会自动回滚。
例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Transactional
public void addUser(User user) {
userDao.addUser(user);
}
@Transactional
public User getUserById(int id) {
return userDao.getUserById(id);
}
@Transactional
public void updateUser(User user) {
userDao.updateUser(user);
}
@Transactional
public void deleteUser(int id) {
userDao.deleteUser(id);
}
@Transactional
public List<User> getAllUsers() {
return userDao.getAllUsers();
}
}
```
在上述代码中,我们在每个方法上都添加了@Transactional 注解,表示这个方法是一个事务,并且使用默认的事务传播行为和隔离级别。
注意,当我们在使用@Transactional 注解时,需要配置一个事务管理器,例如:
```xml
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
```
在上述配置中,我们配置了一个 DataSourceTransactionManager 作为事务管理器,并使用tx:annotation-driven元素开启注解驱动的事务管理。
阅读全文