@Transactional只能修饰公用方法吗
时间: 2023-11-28 22:44:40 浏览: 139
根据引用[1],@Transactional注解可以用于修饰公用方法、私有方法和受保护的方法。但是,如果你使用基于代理的AOP,则只有公用方法才能被代理,因此只有公用方法才能被@ Transactional注解修饰。如果你使用基于AspectJ的AOP,则可以在任何方法上使用@ Transactional注解,包括私有方法和受保护的方法。
下面是一个使用@ Transactional注解修饰私有方法的例子:
```java
@Service
public class UserService {
@Autowired
private UserDao userDao;
@Transactional
public void updateUser(User user) {
// do something
updateUserAddress(user);
// do something
userDao.updateUser(user);
}
@Transactional
private void updateUserAddress(User user) {
// do something
userDao.updateUserAddress(user);
// do something
}
}
```
在上面的例子中,updateUser()方法和updateUserAddress()方法都被@ Transactional注解修饰,因此它们都将在事务中运行。
阅读全文